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

Python dataframe.at[]添加新列,而不是添加值,python,arrays,pandas,dataframe,if-statement,Python,Arrays,Pandas,Dataframe,If Statement,我有一个数据帧: 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

我有一个数据帧:

  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
在下面的iterate和if语句(行[4]=行['TWO']之后,这样做只是为了检查列位置)

我获取新列,而不是将值设置为两列:

  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
我已将[index,row['TWO']]=1处的
df_fin_k.替换为
df_fin_k.[index,TWO']=1
尝试一下

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
我已将[index,row['TWO']]=1的
df_fin_k.替换为
df_fin_k.在[index,TWO']=1的
我尝试了以下方法:

for index , row in df.iterrows():
  if row['K3_Code_Sender'] + row['K3_Code_Receiver'] == 0:
    df['TWO'][index] = 2
  else: 
    df['TWO'][index] = 1
我试过这个:

for index , row in df.iterrows():
  if row['K3_Code_Sender'] + row['K3_Code_Receiver'] == 0:
    df['TWO'][index] = 2
  else: 
    df['TWO'][index] = 1

第一个回答很好!您是否也获得了所需的输出?这是有点不清楚,当你说,你尝试它没有指定任何结果@Aerows谢谢,它首先给出了“me/usr/local/lib/python3.6/dist packages/ipykernel_launcher.py:5:SettingWithCopyWarning:A值试图在数据帧的切片副本上进行设置”@Aerows,但当我使用df.head(6)时,它给出了我想要的输出第一个好答案!您是否也获得了所需的输出?这是有点不清楚,当你说,你尝试它没有指定任何结果@Aerows谢谢,它首先给出了“me/usr/local/lib/python3.6/dist packages/ipykernel_launcher.py:5:SettingWithCopyWarning:试图在数据帧的切片副本上设置值”@Aerows,但当我使用df.head(6)时,它给出了我想要的输出