python - 由 groupby 产生的 pandas 数据框中的列名
问题描述
我有以下代码:
import pandas as pd
import numpy as np
df = pd.DataFrame({'clif_cod' : [1,2,3,3,4,4,4],
'peds_val_fat' : [10.2, 15.2, 30.9, 14.8, 10.99, 39.9, 54.9],
'mes' : [1,2,4,5,5,6,12],
'ano' : [2016, 2016, 2016, 2016, 2016, 2016, 2016]})
vetor_valores = df.groupby(['mes','clif_cod']).sum()
这产生了这个输出:
ano peds_val_fat
mes clif_cod
1 1 2016 10.20
2 2 2016 15.20
4 3 2016 30.90
5 3 2016 14.80
4 2016 10.99
6 4 2016 39.90
12 4 2016 54.90
如何根据 mes 和 clif_cod 选择行?
当我做 list(df) 时,我只得到 ano 和 peds_val_fat。
解决方案
IIUC,您可以将参数传递as_index=False
给您的 groupby。然后,您可以像访问任何其他数据框一样访问它
vetor_valores = df.groupby(['mes','clif_cod'], as_index=False).sum()
>>> vetor_valores
mes clif_cod ano peds_val_fat
0 1 1 2016 10.20
1 2 2 2016 15.20
2 4 3 2016 30.90
3 5 3 2016 14.80
4 5 4 2016 10.99
5 6 4 2016 39.90
6 12 4 2016 54.90
要访问值,您现在可以使用iloc
或loc
像任何数据框一样使用:
# Select first row:
vetor_valores.iloc[0]
...
或者,如果您已经创建了 groupby 并且不想返回并重新创建它,您可以重置索引,结果是相同的。
vetor_valores.reset_index()
推荐阅读
- c - 如何为数组的元素赋值?
- c++ - 使用cmake -G时如何指定输出路径?
- c# - 我如何通过 postgres 加密并通过 c# 解密?
- java - 无法使用 Java 从 XML 中读取节点元素及其值
- image - 如何保持在jspdf中添加的图像的纵横比
- node.js - 来自 Amazon Lambda 上 ffmpeg 的 SIGSEGV
- python - 导入其他文件并使用 main 中的函数
- jquery - Javascript 从谷歌获取建筑物的图像
- python - 调用 .to_excel 时“异常未处理:至少一张表必须可见”
- python - 如何规范化数据框的列,忽略其中的 None 值?