如何用逗号连接Pandas数据框的两列?

2024-03-29 06:41:12 发布

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

我想用逗号连接Pandas数据框的2列,即:第1列中的“abc”与第2列中的“123”连接,变成“abc,123”。在

例如:

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame({'IDx': ['a','b',np.nan,'C'], 'IDy':['1','','2','D']})
>>> df
   IDx  IDy
0    a    1
1    b     
2  NaN    2
3    C    D

以下操作无效:

^{pr2}$

这是期望的结果:

>>> df = pd.DataFrame({'ID': ['a, 1', 'b', '2', 'C, D']})
>>> df
     ID
0  a, 1
1     b
2     2
3  C, D

Tags: 数据importnumpyiddataframepandasdfas
1条回答
网友
1楼 · 发布于 2024-03-29 06:41:12

您可以使用^{}^{}来清空string^{}列可以string^{}

df['ID'] = df[['IDx', 'IDy']].apply(lambda x: ','.join(x.fillna('').map(str)), axis=1)
df['ID'] = df['ID'].str.strip(',')
print df
   IDx IDy   ID
0    a   1  a,1
1    b        b
2  NaN   2    2
3    C   D  C,D

^{}到空字符串,^{}到{}和{a4}:

^{2}$

编辑:如果列的dtypestring,则可以省略map或{}:

df['ID'] = df[['IDx', 'IDy']].apply(lambda x: ','.join(x.fillna('')), axis=1)
df['ID'] = df['ID'].str.strip(',')

或者:

df['ID'] = df['IDx'].fillna('') + ',' + df['IDy'].fillna('')
df['ID'] = df['ID'].str.strip(',')
print df

相关问题 更多 >