【发布时间】:2019-09-29 18:44:45
【问题描述】:
我正在使用 df.iterrows 或 df.itertuples 对大型数据框进行迭代。我正在按照以下链接中提出的示例进行操作:
这是[链接] (Python Pandas iterate over rows and access column names)
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(10,4),columns=list('ABCD'))
print df
A B C D
0 0.351741 0.186022 0.238705 0.081457
1 0.950817 0.665594 0.671151 0.730102
2 0.727996 0.442725 0.658816 0.003515
3 0.155604 0.567044 0.943466 0.666576
4 0.056922 0.751562 0.135624 0.597252
5 0.577770 0.995546 0.984923 0.123392
6 0.121061 0.490894 0.134702 0.358296
7 0.895856 0.617628 0.722529 0.794110
8 0.611006 0.328815 0.395859 0.507364
9 0.616169 0.527488 0.186614 0.278792
从上面的数据框中,我尝试引用特定的列和行(例如前一行),但出现错误。例如:
for row in df.iterrows():
if row.loc[1,'A'] > 0.95:
temp_val = row.loc[0,'A']
else:
temp_val = row.loc[0,'B']
谢谢!
【问题讨论】:
-
你的意思是
m=df.loc[1,'A']>0.95和np.where(m,df.loc[0,'A'],df.loc[0,'B'])