我怎样才能重建这个数据集,以便我可以比较这两家公司?
How can i reconstruct this dataset so i can compare these two companies?
我有这个table:
company
store type
year
average_spend
A
food
y1
123.4
B
food
y2
340
A
food
y3
9.4
A
pharmacy
y1
13.4
B
pharmacy
y2
90
有两家公司,100种店型,3年。我想根据商店类型按平均支出比较公司 A 和 B YoY。我不确定如何以某种方式转动这个 table 但同时不执行任何计算。例如,最好将商店类型设置为行,将年份 和 公司作为列 headers,就像您在 excel 中所做的那样。唯一的问题是将上面的 table 导出到 excel,当你旋转时必须进行计算。
例如当我说 headers 列是年份和公司时,它将是 year1 那么在这家公司 A |公司 B. ... 不确定该怎么做 'pivot'。执行以下操作可以在结构上实现我想要的,但是我不想要聚合函数...
df.pivot_table(values='average_spend', index='store_type', columns=['company','year'], aggfunc='sum')
我该怎么做?
company A B
cols y1 y2 y3 y1 y2 y3
food 123.4 NaN 9.4 10 340 NaN
pharmacy 13.4 NaN NaN NaN NaN NaN
尝试:
idx = pd.MultiIndex.from_product(
[df["company"].unique(), df["year"].unique()], names=["company", "year"]
)
x = df.pivot(
values="average_spend", index="store_type", columns=["company", "year"]
)
x = x.reindex(columns=idx)
print(x)
打印:
company A B
year y1 y2 y3 y1 y2 y3
store_type
food 123.4 NaN 9.4 NaN 340.0 NaN
pharmacy 13.4 NaN NaN NaN 90.0 NaN
我有这个table:
company | store type | year | average_spend |
---|---|---|---|
A | food | y1 | 123.4 |
B | food | y2 | 340 |
A | food | y3 | 9.4 |
A | pharmacy | y1 | 13.4 |
B | pharmacy | y2 | 90 |
有两家公司,100种店型,3年。我想根据商店类型按平均支出比较公司 A 和 B YoY。我不确定如何以某种方式转动这个 table 但同时不执行任何计算。例如,最好将商店类型设置为行,将年份 和 公司作为列 headers,就像您在 excel 中所做的那样。唯一的问题是将上面的 table 导出到 excel,当你旋转时必须进行计算。
例如当我说 headers 列是年份和公司时,它将是 year1 那么在这家公司 A |公司 B. ... 不确定该怎么做 'pivot'。执行以下操作可以在结构上实现我想要的,但是我不想要聚合函数...
df.pivot_table(values='average_spend', index='store_type', columns=['company','year'], aggfunc='sum')
我该怎么做?
company A B
cols y1 y2 y3 y1 y2 y3
food 123.4 NaN 9.4 10 340 NaN
pharmacy 13.4 NaN NaN NaN NaN NaN
尝试:
idx = pd.MultiIndex.from_product(
[df["company"].unique(), df["year"].unique()], names=["company", "year"]
)
x = df.pivot(
values="average_spend", index="store_type", columns=["company", "year"]
)
x = x.reindex(columns=idx)
print(x)
打印:
company A B
year y1 y2 y3 y1 y2 y3
store_type
food 123.4 NaN 9.4 NaN 340.0 NaN
pharmacy 13.4 NaN NaN NaN 90.0 NaN