csv for循环不打印pandas df中的每一行

hgtggwj0  于 2023-04-03  发布在  其他
关注(0)|答案(2)|浏览(121)

我有一个pandas df,它是从一个csv文件中提取出来的,这个文件是这样创建的

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")转换为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

anhgbhbe

anhgbhbe1#

for row in dfcsv循环只遍历dataframe的列,而不是行。你可以像这样使用iterrows()方法:这将遍历dataframe的每一行,并将该行打印为pandas系列。

for index, row in dfcsv.iterrows():
    print(row)

或者你可以使用它来打印行的特定列:

for index, row in dfcsv.iterrows():
    print(row['column_name'])
ny6fqffe

ny6fqffe2#

当你用for each循环遍历一个 Dataframe 时,它会遍历列:

for i in range(len(dfcsv)):
    print(dfcsv['UPST'][i])

for row in dfcsv['UPST']:
    print(row)

相关问题