我有两列,我正在尝试根据其中一列是否为空值来创建新的一列。我有以下示例,我尝试使用 np.where() 函数,但它似乎不起作用。
import pandas as pd
import numpy as np
# DF 1
a = pd.DataFrame([1,'nan',2],columns=['a1'])
# DF 2
b = pd.DataFrame(['hola','hola','hola'],columns=['b1'])
# New Column
b['b2'] = np.where(a['a1'].astype(str) != 'nan', b['b1'] + a['a1'].astype(str))
新列“b2”的结果应为:
hola1
hola
hola2
np.where
函数也没有像 else 选项这样的选项,所以我不知道如何包含它。我感谢您的帮助!
最佳答案
您需要“同步”a
和 b
数据帧以进行成对比较(可能与 pd.concat
):
b['b2'] = pd.concat([a.replace({'nan': ''}), b], axis=1).apply(lambda x:x['b1'] + str(x['a1']), axis=1)
print(b)
b1 b2
0 hola hola1
1 hola hola
2 hola hola2
关于python - 根据条件连接两个 Pandas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75086665/