如何将两个DataFrame列的值合并为一个

时间:2017-08-15 15:25:10

标签: python string pandas dataframe

我的数据框data包含这些列col1col1.1

data:
ID     Col1    Col1.1
1      21      Water, Salt
13     18      Onions
101    30      Replaceable with oil, water, acid

我希望data成为:

data:
ID     Col1
1      21: Water, Salt 
13     18: Onions
101    30: Replaceable with oil, water, acid

到目前为止,我有:

data['Col'] = ': '.join(str(list(zip(data['Col1'], data['Col1.1']))).split("', ")).replace("'", "").replace("(", "").replace(")", "").replace("[", "").replace("]", "")

注意:我在运行此程序时获得了SettingWithCopyWarning

我该如何解决这个问题?谢谢大家

1 个答案:

答案 0 :(得分:3)

使用str.cat

df['Col1'].astype(str).str.cat(df['Col1.1'], sep=': ')
Out: 
0                          21: Water, Salt
1                               18: Onions
2    30: Replaceable with oil, water, acid

您需要将其分配回来并删除另一列以获得完全相同的输出:

df['Col1'] = df['Col1'].astype(str).str.cat(df['Col1.1'], sep=': ')
df = df.drop('Col1.1', axis=1)

或者,全部在一行中,感谢MaxU

df['Col1'] = df['Col1'].astype(str).str.cat(df.pop('Col1.1'), sep=': ')