我有一个非常简单的数据集:
Customer Amount
A 1.25
B 2
C 1
A 5
D 2
B 10
我想得到以下结果:
Customer Amount Number_of_transactions
A 6.25 2
B 12 2
C 1 1
D 1 2
我解决的方法是添加另一个列,其中所有值都是1,然后使用df.groupby(' Customer')。
答案 0 :(得分:0)
试试这个:
>>> df['Number_of_transactions'] = 1
>>> df1 = df.pivot_table(index='Customer',
values=['Amount', 'Number_of_transactions'],
aggfunc=np.sum)\
.reset_index() # reset_index is optional
>>> df1
Out[21]:
Customer Amount Number_of_transactions
0 A 6.25 2
1 B 12.00 2
2 C 1.00 1
3 D 2.00 1
对于情节,只需:
>>> df1.hist(bin=50)
答案 1 :(得分:0)
我不确定你想要什么作为情节,但对于第一部分,你可以这样做:
new_df = pd.concat([df.groupby(df.Customer).Amount.sum(),
df.Customer.value_counts()], axis=1)
new_df.columns = ["Amounts","Number_of_transactions"]
然后如果你有一个条形图:
new_df.plot(kind="bar")
或者如果您想要直方图:
new_df.hist()