【发布时间】:2016-09-22 09:05:11
【问题描述】:
我有一个包含 2 列的 pandas 数据框:
{'A':[1, 2, 3],'B':[4, 5, 6]}
我想创建一个新列,其中:
{'C':[1 4,2 5,3 6]}
【问题讨论】:
我有一个包含 2 列的 pandas 数据框:
{'A':[1, 2, 3],'B':[4, 5, 6]}
我想创建一个新列,其中:
{'C':[1 4,2 5,3 6]}
【问题讨论】:
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 需要很长时间。但这会带来预期的结果。
如果您不介意 zip 对象,那么您可以使用df['C'] = zip(df.A,df.B)。
如果你喜欢元组,那么你可以使用list() 投射 zip 对象。请参考此post。在这种情况下使用 zip 非常方便。
【讨论】: