dataframe.at []添加新列而不是添加值

吉普

我有一个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
Devbrat anuragi

尝试一次

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']] = 1df_fin_k.at[index, 'TWO'] = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章