gpt4 book ai didi

python - 数据框中两列或多列之间的 If 语句

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:43 25 4
gpt4 key购买 nike

我想做的是做一个简单的声明,说明如果列不是 = 'nan',然后在数据框中创建一个新列并为每一行设置该值。

ID1    ID2
Apple nan
Orange nan
nan Pear
nan Grape

理想情况下它看起来像这样:

ID1    ID2    MasterID
Apple nan Apple
Orange nan Orange
nan Pear Pear
nan Grape Grape

我试过使用以下方法:

df['MasterID'] = ''
df.loc[df['ID1'] != 'nan','MasterID'] = df['ID1']
df.loc[df['ID2'] != 'nan','MasterID'] = df['ID2']

但它所做的只是优先处理最后一条语句以撤消第二行创建的内容。当我像这样使用 numpy where 语句时也是如此:

df['MasterID'] = np.where(df['ID1'] != 'nan',
df['ID1'],
df['ID2'])

我还想使用一些我将来可能用 3+ 列完成此操作的东西。感谢任何指导。

最佳答案

首先替换NaN,然后每行sum:

df['MasterID'] = df.fillna('').sum(axis=1)

如果需要指定列名:

df['MasterID'] = df[['ID1','ID2']].fillna('').sum(axis=1)

print (df)
ID1 ID2 MasterID
0 Apple NaN Apple
1 Orange NaN Orange
2 NaN Pear Pear
3 NaN Grape Grape

关于python - 数据框中两列或多列之间的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50136252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com