按多个列分组Pandas数据帧,找出与上个月相比的百分比变化。
创始人
2024-10-14 02:33:08
0

要按多个列分组Pandas数据帧并找出与上个月相比的百分比变化,可以按照以下步骤进行操作:

  1. 导入必要的库和模块:
import pandas as pd
  1. 创建一个示例数据帧:
data = {'date': ['2021-01-01', '2021-01-01', '2021-02-01', '2021-02-01', '2021-03-01', '2021-03-01'],
        'category': ['A', 'B', 'A', 'B', 'A', 'B'],
        'value': [100, 200, 150, 250, 180, 300]}
df = pd.DataFrame(data)
  1. 将'date'列转换为日期类型:
df['date'] = pd.to_datetime(df['date'])
  1. 将数据帧按照'date'和'category'列分组,并计算每个组的总和:
df_grouped = df.groupby(['date', 'category']).sum().reset_index()
  1. 使用Pandas的shift()函数将数据帧中的值向上移动一个月:
df_grouped['value_previous_month'] = df_grouped.groupby('category')['value'].shift()
  1. 计算每个组与上个月相比的百分比变化:
df_grouped['percentage_change'] = (df_grouped['value'] - df_grouped['value_previous_month']) / df_grouped['value_previous_month'] * 100

完整的代码示例:

import pandas as pd

data = {'date': ['2021-01-01', '2021-01-01', '2021-02-01', '2021-02-01', '2021-03-01', '2021-03-01'],
        'category': ['A', 'B', 'A', 'B', 'A', 'B'],
        'value': [100, 200, 150, 250, 180, 300]}
df = pd.DataFrame(data)

df['date'] = pd.to_datetime(df['date'])

df_grouped = df.groupby(['date', 'category']).sum().reset_index()

df_grouped['value_previous_month'] = df_grouped.groupby('category')['value'].shift()

df_grouped['percentage_change'] = (df_grouped['value'] - df_grouped['value_previous_month']) / df_grouped['value_previous_month'] * 100

print(df_grouped)

输出结果:

        date category  value  value_previous_month  percentage_change
0 2021-01-01        A    100                   NaN                NaN
1 2021-01-01        B    200                   NaN                NaN
2 2021-02-01        A    150                 100.0               50.0
3 2021-02-01        B    250                 200.0               25.0
4 2021-03-01        A    180                 150.0               20.0
5 2021-03-01        B    300                 250.0               20.0

相关内容

热门资讯

微信小程序黑科技免费!微乐小程... 微信小程序黑科技免费!微乐小程序辅助器出租(开挂)方法-原来专业是有挂辅助器是一种具有地方特色的麻将...
微乐小程序黑科技!微乐广西小程... 微乐小程序黑科技!微乐广西小程序(开挂)技巧-一直分享有挂1、这是跨平台的轻量版有透视,在线的操作超...
微乐小程序存在有挂!微乐降序自... 微乐小程序存在有挂!微乐降序自建房辅助app(开挂)技巧-总是开挂真的是有挂1、游戏颠覆性的策略玩法...
微信小程序黑科技免费!微乐家乡... 微信小程序黑科技免费!微乐家乡自建房辅助app(开挂)神器-真是教你存在有挂1、破解器简单,机器人操...
微乐小程序透视辅助!微信小程序... 微乐小程序透视辅助!微信小程序游戏充值破解(开挂)工具-原来必备有挂1、有没有辅助教程、有透视吗等服...
微乐小程序黑科技!微乐自建房脚... 微乐小程序黑科技!微乐自建房脚本免费下载入口(开挂)插件-果然有挂存在有挂1、有没有辅助教程、有透视...
微乐小程序透视挂!微乐河南家乡... 微乐小程序透视挂!微乐河南家乡麻将辅助脚本(开挂)app-其实教你是有挂1、不需要AI权限,帮助你快...
微乐小程序存在有挂!微信小程序... 微乐小程序存在有挂!微信小程序游戏充值破解(开挂)软件-本来推荐是真的挂1、下载好脚本下载之后点击打...
微乐小程序透视辅助!微乐小程序... 微乐小程序透视辅助!微乐小程序自建房插件免费(开挂)插件-切实解密是真的挂;能透视中分为三种模型:模...
微信小程序微乐破解器!微乐自建... 微信小程序微乐破解器!微乐自建房插件免费软件(开挂)方法-好像解迷存在有挂1、有没有辅助教程、有透视...