【发布时间】:2018-08-08 05:52:40
【问题描述】:
我正在尝试通过将数据中的一列转换为行(通过旋转或取消堆叠)来重塑熊猫数据框。
我对此很陌生,很可能我遗漏了一些明显的东西。我进行了广泛的搜索,但未能成功应用我遇到的任何解决方案。
df
Location Month Metric Value
0 Texas January Temperature 10
1 New York January Temperature 20
2 California January Temperature 30
3 Alaska January Temperature 40
4 Texas January Color Red
5 New York January Color Blue
6 California January Color Green
7 Alaska January Color Yellow
8 Texas February Temperature 15
9 New York February Temperature 25
10 California February Temperature 35
11 Alaska February Temperature NaN
12 Texas February Color NaN
13 New York February Color Purple
14 California February Color Orange
15 Alaska February Color Brown
我正在尝试将度量值“透视”到列中。最终目标是这样的结果:
Location Month Temperature Color
Texas January 10 Red
New York January 20 Blue
California January 30 Green
Alaska January 40 Yellow
Texas February 15
New York February 25 Purple
California February 35 Orange
Alaska February Brown
我尝试过使用 pivot、pivot_table 以及 unstack 方法,但我确信我遗漏了一些东西。许多复杂性似乎是因为我将字符串与数字混合在一起,并且数据中也有一些缺失值。
这是迄今为止我能得到的最接近的值,但我不希望月份列有额外的行,从而导致更多的空白值:
df.set_index(['Location','Month','Metric'], append=True, inplace=True)
df.unstack()
Value
Metric Color Temperature
Location Month
0 Texas January None 10
1 New York January None 20
2 California January None 30
3 Alaska January None 40
4 Texas January Red None
5 New York January Blue None
6 California January Green None
7 Alaska January Yellow None
这里的任何帮助将不胜感激。这似乎很可能有一个简单的解决方案可用。
【问题讨论】:
标签: python python-3.x pandas pivot pivot-table