如何使用pandas将两列数据合并为一列并加上“+”号

2024-09-29 20:16:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两列在这个格式的csv

Drug    Product(Predicted)
#N/A    acetaldehyde
#N/A    nicotine
#N/A    resin
#N/A    rosa
#N/A    eliglustat
#N/A    valpromide
#N/A    clostridium
#N/A    ambenonium
solution    valpromide
solution    valpromide
solution    valpromide
solution    valpromide
solution    valpromide
solution    valpromide
solution    valpromide
solution    valpromide
solution    valpromide
#N/A    amiloride
#N/A    valsartán
#N/A    manitol
#N/A    hipromelosa
#N/A    fosfato disódico
#N/A    fosfato disódico
#N/A    agalsidase beta
#N/A    enoxaparin sodium
solution    warfarine
#N/A    eliglustat
#N/A    silver
#N/A    silver

我要寻找的输出是,创建一个新列,并且每当在drug列中存在一个条目时(忽略所有N/a),通过用加号连接这两个列,将该条目添加到新列中,并获得一个输出csv

例如:

New column
solution + valpromide
solution + valpromide
solution + warfarine

我是新来的熊猫,所以我想知道如何可以做到这一点使用相同的


Tags: csvsilver格式条目productdicosolutiondis
2条回答

如果您的数据帧中没有null值(称为null),那么我建议您执行以下操作:

df["drug"].replace("#N/A", np.nan, inplace = True)

一旦将缺少的值替换为null,答案就只有一行代码了

df["new_col"] = df["drug"] + " + " + df["Product"]

如果列、产品或药物中的任何一个为null,则上述代码将返回null的输出

希望这有帮助

^{}^{}一起使用:

df['new'] = df['Drug'].str.cat(df['Product(Predicted)'], na_rep='', sep='+').str.strip('+')

或在合并前将缺少的值替换为空字符串:

df['new'] = (df['Drug'].fillna('') + '+' + df['Product(Predicted)']).str.strip('+')

print (df)
       Drug Product(Predicted)                  new
0       NaN       acetaldehyde         acetaldehyde
1       NaN           nicotine             nicotine
2       NaN              resin                resin
3       NaN               rosa                 rosa
4       NaN         eliglustat           eliglustat
5       NaN         valpromide           valpromide
6       NaN        clostridium          clostridium
7       NaN         ambenonium           ambenonium
8  solution         valpromide  solution+valpromide
9  solution         valpromide  solution+valpromide

如果要删除drug列中带有NaN的行:

df1 = df.dropna(subset=['Drug'])
df1['new'] = df1['Drug'] + '+' + df1['Product(Predicted)']
print (df)
       Drug Product(Predicted)                  new
8  solution         valpromide  solution+valpromide
9  solution         valpromide  solution+valpromide

相关问题 更多 >

    热门问题