python - 比较分组数据帧的值

标签 python pandas pandas-groupby

您好,我有以下数据框:

df=streets.groupby(['Address','Username'])['Fees'].sum()
df

Address   Username      
street1   acc1         275.39
          acc2         279.60
          acc3         249.96
street2   acc4         10634.11
          acc5         11445.39
          acc5         3832.67

我想以某种方式访问​​值(“费用”)并仅选择费用差异小于 50 的组,在我们的示例组中,地址 = street1

提前谢谢

最佳答案

IIUC,您可以计算每组的最大值和最小值之间的差值,如果低于 50,则所有值都在 50 以内:

g = df.groupby(level='Address')
s = (g.max()-g.min())
idx = s[s.lt(50)].index

df.loc[idx]

输出:

Address  Username
street1  acc1        275.39
         acc2        279.60
         acc3        249.96
Name: Fee, dtype: float64

注意。你所说的 df 实际上是一个系列。如果它是一个 DataFrame,您需要执行 g = df.groupby(level='Address')['Fee']

使用的输入:

df = (pd.Series({('street1', 'acc1'): 275.39,
                 ('street1', 'acc2'): 279.6,
                 ('street1', 'acc3'): 249.96,
                 ('street2', 'acc4'): 10634.11,
                 ('street2', 'acc5'): 3832.67}, name='Fee')
        .rename_axis(['Address', 'Username'])
      )

关于python - 比较分组数据帧的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71752023/

相关文章:

python - 操作错误 : database is locked

python - paramiko-1.16.0 readlines() 解码错误

python - 像数据库表一样标准化 Pandas DataFrame

python - 如何将日期格式的数据列转换为 pandas

python - Pandas 将行转换为列

Python包安装问题

python - 将 pandas 数据帧作为 xlsx 文件写入 azure blob 存储,而不创建本地文件

python - Pandas Dataframe 部分字符串替换

Pandas :如何对列更改进行分组?

python - Pandas 按一列分组将其他列的值连接为分隔列表