df = pd.DataFrame([["a", "d"], ["", ""], ["", "3"]],
columns=["a", "b"])
df
a b
0 a d
1
2 3
我想用这样的 if 语句进行矢量化字符串连接:
df["c"] = df["a"] + "()" + df["b"] if df["a"].item != "" else ""
但它不起作用,因为 .item 返回一个系列。如果没有遍历每一行的 apply 或 lambda 方法,是否可以这样做?在矢量化操作中,pandas 将尝试一次连接多个单元格并使其更快...
期望的输出:
df
a b c
0 a d a ()b
1
2 3
请您参考如下方法:
试试这个:使用 np.where()
df = pd.DataFrame([["a", "d"], ["", ""], ["", "3"]],
columns=["a", "b"])
df['c']=np.where(df['a']!='',df['a'] + '()' + df['b'],'')
print(df)
输出:
a b c
0 a d a()d
1
2 3
