我有一个DataFrame:
APPLICATION COUNT K3_Code_Sender K3_Code_Receiver TWO
0 BCCTBL_2 0.0 0 287 x
1 BDLSMF01 0.0 9996 0 x
2 BEX00003 0.0 762 0 x
3 BEX01910 711762.0 762 0 x
4 BEX02955 60.0 0 287 x
5 BEX02970 12058.0 762 387 x
6 BEX03148 179.0 0 0 x
在执行完迭代和if语句后(row [4] = row ['TWO'],类似这样只是为了检查列的位置)
for index, row in df_fin_k.iterrows():
if row['K3_Code_Sender'] != '0' and row['K3_Code_Receiver'] != '0':
df_fin_k.at[index, row[4]] = 2
else:
df_fin_k.at[index, row['TWO']] = 1
我得到新列而不是将值设置为两个列:
APPLICATION COUNT K3_Code_Sender K3_Code_Receiver TWO x
0 BCCTBL_2 0.0 0 287 x 1.0
1 BDLSMF01 0.0 9996 0 x 1.0
2 BEX00003 0.0 762 0 x 1.0
3 BEX01910 711762.0 762 0 x 1.0
4 BEX02955 60.0 0 287 x 1.0
5 BEX02970 12058.0 762 387 x 2.0
6 BEX03148 179.0 0 0 x 1.0
如何解决这个问题,我们将有:
APPLICATION COUNT K3_Code_Sender K3_Code_Receiver TWO
0 BCCTBL_2 0.0 0 287 1.0
1 BDLSMF01 0.0 9996 0 1.0
2 BEX00003 0.0 762 0 1.0
3 BEX01910 711762.0 762 0 1.0
4 BEX02955 60.0 0 287 1.0
5 BEX02970 12058.0 762 387 2.0
6 BEX03148 179.0 0 0 1.0
尝试一次
for index, row in df_fin_k.iterrows():
if row['K3_Code_Sender'] != '0' and row['K3_Code_Receiver'] != '0':
df_fin_k.at[index, 'TWO'] = 2
else:
df_fin_k.at[index, 'TWO'] = 1
我已替换df_fin_k.at[index, row['TWO']] = 1
为df_fin_k.at[index, 'TWO'] = 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句