【发布时间】:2017-07-20 17:25:09
【问题描述】:
我有一个已经旋转的数据框,如下所示。
Cost Transport Currency
Manufacturer ABC XYZ ABC XYZ ABC XYZ
Date
2017-07-01 312 323 31 41 Pounds Pounds
2017-07-02 423 335 21 32 Dollars Pounds
2017-07-03 421 304 21 21 Dollars Pounds
上面显示了与从制造商处购买物品相关的成本和运输费用,以及成本和费用以何种货币计价。
我要做的是汇总数字并将它们放在货币下。所需的输出是(我没有对加法进行评估,以便清楚它来自哪里)
Currency
Dollars Pounds
Date
2017-07-01 0 312+323+31+41
2017-07-02 423+21 335+32
2017-07-03 421+21 304+21
我试过了
df.pivot_table(index='Date', columns='Currency', aggfunc=np.sum)
Pandas 根本不喜欢哪个给出 KeyError。
这是获取起始数据帧 df 的代码。在实际用例中,数据绝对需要先进行数据透视才能进行分析和聚合,因此请不要在 my_list 或 df_raw 上应用数据透视表。
my_list = ["2017-07-01", "ABC",312, 31, "Pounds", "2017-07-01", "XYZ" ,323, 41, "Pounds",
"2017-07-02", "ABC", 423, 21, "Dollars", "2017-07-02", "XYZ" ,335, 32, "Pounds",
"2017-07-03", "ABC", 421, 21, "Dollars", "2017-07-03", "XYZ", 304, 21, "Pounds" ]
df_raw = pd.DataFrame(np.array(my_list).reshape(6,5),
columns = ["Date", "Manufacturer", "Cost", "Transport", "Currency"])
df = df_raw.pivot(index='Date', columns='Manufacturer')
【问题讨论】:
标签: python pandas pivot pivot-table