[英]Pandas - transpose one column
我在对熊猫使用转置时遇到了困难。
我有以下 df:
date name quantity
1/1/2018 A 5
1/1/2018 B 6
1/1/2018 C 7
1/2/2018 A 9
1/2/2018 B 8
1/2/2018 C 6
我最终想为每个日期的所有名称及其数量创建成对相关性。 为此,我首先尝试从该 df 创建以下输出:
date A B C
1/1/2018 5 6 7
1/2/2018 9 8 6
转置对我来说很困难,因为我可以获得重复的列标题,但我也不想通过先删除它们而丢失任何数据。 我有一种感觉,答案可能是我并不真正使用的熊猫实用程序,而且我可能在转置时使用隧道......
由于您没有执行聚合,因此pd.DataFrame.pivot
应该优先于groupby
/ pivot_table
:
res = df.pivot(index='date', columns='name', values='quantity')
print(res)
name A B C
date
1/1/2018 5 6 7
1/2/2018 9 8 6
如果您愿意,可以使用reset_index
将date
提升到一列。
这是一个groupby
解决方案,尽管与pivot
方法相比,它非常不切实际。 我只会推荐这个作为熟悉熊猫索引的练习。
# Get values of 'quantity' for each date
x = df.groupby('date')['quantity'].agg(list)
# Insert these values into a new data frame
df2 = pd.DataFrame(index=x.index, data=x.to_list(), columns=df['name'].unique())
这将返回:
A B C
date
1/1/2018 5 6 7
1/2/2018 8 9 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.