我正在寻找一种更好的方法来写这篇文章。这适用于我的示例数据集,但在较大的数据集上相当慢。从dataframe
个客户购买数字开始。我希望得到以下格式的列表:``[客户,订单的平均数,订单的数量]`
import pandas as pd
df = pd.DataFrame(data = [['Customer0', 10], ['Customer0', 12], ['Customer1', 23]],
columns=['Customer', 'Orders'])
grouped = df.groupby(['Customer']).mean()
grouped['count'] = df.groupby(['Customer']).count()
values = grouped.values.tolist()
indexes = grouped.index.tolist()
for x in range(0,len(values)):
values[x].insert(0, indexes[x])
print values
输出:
[['Customer0', 11, 2], ['Customer0', 23, 1]]
答案 0 :(得分:2)
df.groupby('Customer').agg(['mean', 'count']).reset_index().values.tolist()
Out: [['Customer0', 11, 2], ['Customer1', 23, 1]]
小注意事项:如果组(len(values)
)的数量非常大,这只会显着改善您的代码,因为我们没有在这里循环。如果你只有少数几个团体,我想这个改进最多只有2倍。