这个问题在某种程度上源于我之前提出的一个问题——Pandas groupby make two columns lists separately。这次我想创建一个新列,其中每个值都是一个列表,其中包含来自其他两列的压缩值的元组。例如:
# Original DataFrame
fruit sport weather
0 apple [baseball, basketball] [sunny, windy]
1 banana [swimming, hockey] [cloudy, windy]
2 orange [football] [sunny]
# Desired DataFrame
fruit sport weather pairs
0 apple [baseball, basketball] [sunny, windy] [(baseball, sunny), (basketball, windy)]
1 banana [swimming, hockey] [cloudy, windy] [(swimming, cloudy), (hocky, windy)]
2 orange [football] [sunny] [(football, sunny)]
我尝试了以下代码,但它提供了一些其他信息:
df['pairs'] = list(zip(df['sport'], df['weather']))
# Output DataFrame
fruit sport weather pairs
0 apple [baseball, basketball] [sunny, windy] ([baseball, sunny], [basketball, windy])
1 banana [swimming, hockey] [cloudy, windy] ([swimming, cloudy], [hocky, windy])
2 orange [football] [sunny] ([football], [sunny])
正如你所看到的,它与我想做的“相反”。我应该怎么做才合适?提前谢谢
使用^{} 覆盖
axis=1
和zip
:您可以利用map有一个嵌入式zip,并执行以下操作:
输出
或者您可以使用itertuples:
我想你错过了另一个
list(zip())
:输出:
相关问题 更多 >
编程相关推荐