将多个列合并为一个列 [Python,pandas]

4

我有一个包含两列的pandas数据框: {'A':[1, 2, 3],'B':[4, 5, 6]}

我想要创建一列新的数据,其中: {'C':[1 4,2 5,3 6]}

2个回答

2

安装设置

df = pd.DataFrame({'A':[1, 2, 3],'B':[4, 5, 6]})

解决方案

请注意,根据您期望的输出,[1 4,2 5,3 6]并不是一个有效的输入。我理解您的意思是[(1, 4), (2, 5), (3, 6)]或者["1 4", "2 5", "3 6"]

第一种假设

df.apply(lambda x: tuple(x.values), axis=1)

0    (1, 4)
1    (2, 5)
2    (3, 6)
dtype: object

第二个假设

df.apply(lambda x: ' '.join(x.astype(str)), axis=1)

0    1 4
1    2 5
2    3 6
dtype: object

很棒的答案!然而,对于大文件使用apply会花费很长时间。但它可以得到期望的结果。 - Javiar Sandra

1
如果您不介意zip对象,那么可以使用df['C'] = zip(df.A,df.B)。 如果您喜欢元组,则可以使用list()将zip对象转换。请参考post。在这种情况下使用zip非常方便。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接