【发布时间】:2020-02-27 10:30:33
【问题描述】:
我有一个 DataFrame,其中包含一个名为“ID”的列,其中包含重复的观察结果。每个“ID”行都有一个或多个“文章”值列。我想通过“ID”转置整个数据帧分组,在唯一“ID”的同一行添加新列。
我有什么:
ID Article_1 Article_2
1 Banana Coconut
2 Apple Strawberry
1 Apple
3 Tomatoe
1 Pineapple
2 Banana
4 Apple
5 Apple Strawberry
3 Apple
我想要什么:
ID Article_1 Article_2 Article_3 Article_4
0001 Banana Coconut Apple Pineapple
0002 Apple Strawberry Banana NaN
0003 Tomatoe Apple NaN NaN
0004 Apple NaN NaN NaN
0005 Apple Strawberry NaN NaN
新编辑:
我遇到过一些顺序很重要的情况。
我的 DF:
ID Article Article_2
1 Banana NaN
2 Apple NaN
1 Apple Coconut
3 Tomatoe Coconut
1 Pineapple Tropical
2 Banana Coconut
4 Apple Coconut
5 Apple Coconut
3 Apple Pineapple
第一个@Erfan 解决方案的输出:
Article_1 Article_2 Article_3 Article_4 Article_5 Article_6
0001 Banana Apple Pineapple NaN Coconut Tropical
0002 Apple Banana NaN Coconut NaN NaN
0003 Tomatoe Apple Coconut Pineapple NaN NaN
0004 Apple Coconut NaN NaN NaN NaN
0005 Apple Coconut NaN NaN NaN NaN
我需要什么:
Article_1 Article_2 Article_3 Article_4 Article_5 Article_6
0001 Banana Apple Pineapple Coconut Tropical NaN
0002 Apple Banana Coconut NaN NaN NaN
0003 Tomatoe Apple Coconut Pineapple NaN NaN
0004 Apple Coconut NaN NaN NaN NaN
0005 Apple Coconut NaN NaN NaN NaN
我不能让带有 NaN 值的 Article_5 和带有值的 Article_6 在同一行。
【问题讨论】:
-
请从您的示例数据集中导出您的预期输出,
Coconut和strawberry来自哪里? -
stackoverflow.com/questions/29070423/…df.pivot(index='ID', columns='Article', values='Article')
-
订单对您来说重要吗?因此,例如带有
ID 0001的行,Coconut在第二列是否重要 -
顺序并不重要,但不能是'Article_2'中的NaN值和'Article_3'中的值。
标签: python pandas dataframe pivot transpose