我有一个数据帧
df:
A B C D E
R 1 0.5 YES YTD
A 0 0.7 No QTD
H 1 0.9 YES MTD
U 1 0.9 No MTD
L 0 0.2 YES QTD
我试图读取这个数据帧,目的是根据提供的值创建变量。
例如:
row_list = []
for index, row in df.iterrows():
my_list =[row['A'], row['B'], row['C'], row['D'], row['E'], row['F']]
row_list.append(my_list)
row_list
现在,我必须分配这样的变量。这似乎不是一种合理的赋值方式。
A = row_list[0][0]
B = row_list[0][1]
C = row_list[0][2]
D = row_list[0][3]
E = row_list[0][4]
我如何使用上面的数据帧为数据帧的每一行创建一个if语句:
for i in row_list:
<do something if A = 'R'>
<do something if B = 1>
<do something if C > 0.5 >
<do something if D = 'YES'>
<do something if E = 'QTD'>
为了使执行更容易、更自动化,我在这里缺少了什么?
我想,这就是你想要的:
# Pseudo code:
# if A equals 'R':
# D = 'YES'
# else:
# D = 'No'
这样做吗:
df['D'] = df['A'].apply(lambda x: 'YES' if x == 'R' else 'No')
也一样:
df['D'] = where(df['A'] == 'R', 'YES', 'No')
这将自动应用于所有行。您不必对它们进行迭代。