我有一个从csv文件中提取的pandas df文件,它是这样创建的
def recalc_stock_2day_rsi(ticker):
output = open("output.csv", "a")
yf.pdr_override()
df = pdr.get_data_yahoo(ticker, start, end)
df_close_only = df['Close']
try:
rsi = calc_rsi(df_close_only, 2)
except AttributeError:
rsi = 100
if rsi < 30:
output.write(f"{ticker}n")
output.close()
,并使用dfcsv = pd.read_csv("output.csv")
,它看起来像下面的
UPST
0 WMT
1 NFLX
2 EXC
4 AES
.. ...
63 TME
64 BSX
65 QCOM
66 GILD
67 ABNB
但是由于某些原因每当我尝试运行
命令时for row in dfcsv:
print(row)
只输出UPST
for row in dfcsv
循环只迭代数据框的列,而不是行。你可以这样使用iterrows()
方法:这将遍历数据框的每一行,并将该行作为pandas系列打印。
for index, row in dfcsv.iterrows():
print(row)
或者您可以使用它来打印行中的特定列:
for index, row in dfcsv.iterrows():
print(row['column_name'])
当您在每个循环中使用a迭代数据帧时,它将遍历列:
for i in range(len(dfcsv)):
print(dfcsv['UPST'][i])
或
for row in dfcsv['UPST']:
print(row)