我正在尝试使用Pandas评估Power Query / M,以进行一些可重复的转换。到目前为止还算不错,但是我在Pandas中遇到以下情况时遇到了麻烦,并且非常感谢您指出我做错了什么。
我有一个看起来像这样的DataFrame:
sales rep quarter result value
0 adam q1 target 3000
1 ben q1 target 3200
2 cal q1 target 2900
3 dan q1 target 3400
4 adam q1 actual 2900
5 ben q1 actual 2100
6 cal q1 actual 2100
7 dan q1 actual 3500
8 adam q2 target 4000
9 ben q2 target 3200
10 cal q2 target 7200
11 dan q2 target 5200
12 adam q2 actual 3400
13 ben q2 actual 3900
14 cal q2 actual 9000
15 dan q2 actual 6000
16 adam q3 target 4000
17 ben q3 target 4000
18 cal q3 target 7200
19 dan q3 target 6400
20 adam q3 actual 4500
21 ben q3 actual 4000
22 cal q3 actual 6500
23 dan q3 actual 6500
24 adam q4 target 5200
25 ben q4 target 4300
26 cal q4 target 7000
27 dan q4 target 6500
28 adam q4 actual 5100
29 ben q4 actual 4300
30 cal q4 actual 6900
31 dan q4 actual 7200
我正在尝试使用“值”列作为值来对“结果”列上的数据进行透视。我需要保留“销售代表”和“季度”列。从本质上讲,我试图达到(默认情况下,我在Power Query中的unpivot操作上得到)是:
sales rep quarter target actual
adam q1 3000 2900
adam q2 4000 3400
adam q3 4000 4500
adam q4 5200 5100
ben q1 3200 2100
ben q2 3200 3900
ben q3 4000 4000
ben q4 4300 4300
cal q1 2900 2100
cal q2 7200 9000
cal q3 7200 6500
cal q4 7000 6900
dan q1 3400 3500
dan q2 5200 6000
dan q3 6400 6500
dan q4 6500 7200
很明显,这是一个枢轴表,这使得在该表上执行任何进一步的操作变得更加困难。有什么方法可以到达熊猫吗?
谢谢!
答案 0 :(得分:1)
DataFrame.pivot()
是一种专用或第二级函数,旨在将.groupby()
和.unstack()
混合为一种方法。在此示例中,Pivot和reset_index可以正常工作。
但是,.groupby()
是一种更通用的方法,其主要优点是能够按除列之外的任何Indexer
进行分组:
除了这一巨大优势之外,groupby的应用和转换功能相结合的能力使几乎所有数据分析成为可能。
您可能想熟悉熊猫https://symfony.com/doc/current/components/var_dumper/advanced.html