在熊猫中旋转数据框[重复]
Posted
技术标签:
【中文标题】在熊猫中旋转数据框[重复]【英文标题】:Pivot a dataframe in pandas [duplicate] 【发布时间】:2022-01-21 10:55:02 【问题描述】:我有一个数据框,例如:
Name Program INFO1 INFO2 INFO3
Dog P1 A B 67
Dog P2 A F 89
Cat P1 L M -
Bird P1 A - 1
Bird P2 A B 2
Bird P3 J K 90
我想转换这个数据框,每个Name
只有一行
Name P1_INFO1 P1_INFO2 P1_INFO3 P2_INFO1 P2_INFO2 P2_INFO3 P3_INFO1 P3_INFO2 P3_INFO3
Dog A B 67 A F 89 NA NA NA
Cat L M - NA NA NA NA NA NA
Bird A - 1 A B - J K 90
【问题讨论】:
【参考方案1】:堆叠和取消堆叠,然后将多索引列折叠成一层列
s=df.set_index(['Name','Program']).stack().unstack('Name').T
s.columns = [f'a_b' for a, b in s.columns]
P1_INFO1 P1_INFO2 P1_INFO3 P2_INFO1 P2_INFO2 P2_INFO3 P3_INFO1 P3_INFO2 \
Name
Bird A - 1 A B 2 J K
Cat L M - NaN NaN NaN NaN NaN
Dog A B 67 A F 89 NaN NaN
P3_INFO3
Name
Bird 90
Cat NaN
Dog NaN
【讨论】:
【参考方案2】:将df.pivot
与适当的参数一起使用
df.pivot(index=['Name'], columns=['Program'], values=['INFO1', 'INFO2', 'INFO3'])
【讨论】:
以上是关于在熊猫中旋转数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章