[英]How to acces columns after groupby and agg statements?
我获得的 DataFrame 每列中的每个 agg 元素都有一个列。 我想要的格式是一个有 3 列(albcircu、mean、count)而不是 5 列的表格。
我的代码是:
data = read_csv_file()
valor = data[['albcircu', 'litros']]
valor[['albcircu', 'litros']].groupby(valor['albcircu']).agg(['count', 'mean'])
一个最小的可重现示例可能是这样的:
import pandas as pd
alb = [1800200139, 1800700023, 1800700077, 1800700119, 1800600011, 1800600091, 1800300190, 1800200054, 1802500015, 1800500078, 1800400087, 1800500035, 1800800169, 1800200002, 1800500035, 1800500060, 1800600129, 1800600182, 1802500077, 1800300179]
litros = [400, 500, 500, 452, 1000, 917, 600, 1600, 500, 400, 500, 1500, 444, 500, 500, 500, 500, 500, 500, 974]
data = pd.DataFrame({'albcircu':alb,'litros':litros})
output = data[['albcircu','litros']].groupby(data['albcircu']).agg(['count','mean'])
output #this is because in jupyter this prints the data output
谢谢你。
由于agg
操作,您在列上有一个多索引。 您可以组合它们并重命名列,如下所示。 这里的想法是 df.columns 将返回一个元组列表,因此您遍历该列表并组合元组。
df.columns = [f'{a}_{b}' for a, b in df.columns]
顺便说一句,有一种更简单的方法来执行agg
操作。
data.groupby('albcircu').agg({'litros': ['count', 'mean']})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.