首页 > 解决方案 > Pandas 中的数据透视表

问题描述

我想为Count_OrdersCount_Sessions创建一个数据透视表。但是,使用当前代码,我只能在尝试添加 **Count_Sessions 时对Count_Orders进行计算“我收到以下错误:

SyntaxError: positional argument follows keyword argument

主表

Month      Country  Count_Orders Count_Sessions
2019-01    UK       100           40
2019-01    US       230           60

所需输出表

Month      US_Orders  US_Sessions  UK_Orders US_Sessions Share_Orders Share_Sessions
2019-01    100        230          40        60          0.43          0.66

我当前的代码:

df_pivot = pd.pivot_table(appended_df, index=['Month'], columns='Country', values='Count_Orders') #Pivoting on required columns
df_flattened = pd.DataFrame(df_pivot.to_records()) #Flatten the pivot table to get a datafrmae
df_flattened['Share'] = df_flattened['UK']/df_flattened['US'] #Creating the ratio column

标签: pythonpandas

解决方案


这是一个解决方案:

res = pd.pivot_table(df, index="Month", columns=["Country"])

res.columns = [c[0] + "_" + c[1] for c in res.columns]
res[["orders_ratio", "sessions_ratio"]] = res.iloc[:, [0,2]].divide(res.iloc[:, [1,3]].values) 

输出是:

在此处输入图像描述


推荐阅读