根据客户端将df吐成较小的df
d = dict(tuple(df.groupby('Client')))
print(d)
print("")
# Print each split df
for i in d.values():
print(i, '\n')
print("")
根据Year_Month和音量旋转每个df
for i in d.values():
volume = pd.pivot_table(data=i,
values='Volume',
index=['Client'],
columns=['Year_Month'],
aggfunc= sum
).reset_index().fillna(0)
print(volume, '\n')
print("")
Year_Month Client 2018-08 2018-10 2018-11
0 A 300 300 400
Year_Month Client 2018-08 2018-10 2018-11
0 B 3 3 4
Year_Month Client 2018-08 2018-10 2018-11
0 C 30 30 40
Year_Month Client 2018-08 2018-10 2018-11
0 D 3000 3000 4000
根据Year_Month和交易次数转动每个df
for i in d.values():
count = pd.pivot_table(data=i,
values='Volume',
index=['Client'],
columns=['Year_Month'],
aggfunc= np.count_nonzero
).reset_index().fillna(0)
print(count, '\n')
Year_Month Client 2018-08 2018-10 2018-11
0 A 2 1 1
Year_Month Client 2018-08 2018-10 2018-11
0 B 2 1 1
Year_Month Client 2018-08 2018-10 2018-11
0 C 2 1 1
Year_Month Client 2018-08 2018-10 2018-11
0 D 2 1 1