将多列组合成1列[python,pandas]

时间:2016-05-24 23:39:22

标签: python pandas

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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