为了账号安全,请及时绑定邮箱和手机立即绑定

根据日期减去数据帧中的值

根据日期减去数据帧中的值

阿波罗的战车 2022-08-16 10:08:24
我有这样的数据帧:ID  Date       Paid  DueA  2019-07-01  40000 50000B  2018-08-20  1500  9000B  2018-08-20  2500  9000B  2018-09-18  3000  9000C  2018-10-03  1000  2000C  2018-10-30  1000  2000D  2018-08-20  2000  3000现在,我正在尝试根据月份(和 ID)减去值,因此我需要创建新列“月份重运”以及减去转移到下个月后剩余的值:ID  Date       Paid  Due     Month     Month_RemainingA  2019-07-01  40000 50000  2019-07      10000B  2018-08-20  1500  9000   2018-08      7500B  2018-08-20  2500  9000   2018-08      5000B  2018-09-18  3000  9000   2018-09      2000C  2018-10-03  1000  2000   2018-10      1000C  2018-10-30  1000  2000   2018-10      0D  2018-08-20  2000  3000   2018-08      1000在熊猫中可能吗?
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

如果 是纯字符串,则可以使用以下任一方式构建列:DateMonth


df['Month'] = pd.to_datetime(df['Date']).dt.strfime('%Y-%m')


df['Month'] = df['Date'].str.slice(0,7)

如果是列,则可以使用:Datetime


df['Month'] = df['Date'].dt.strfime('%Y-%m')

然后,您可以使用以下命令构建列:Month_Remaining


df['Month_Remaining'] = df['Due'] - df.groupby(['ID'])['Paid'].cumsum()

你应该最终得到:


  ID        Date   Paid    Due    Month  Month_Remaining

0  A  2019-07-01  40000  50000  2019-07            10000

1  B  2018-08-20   1500   9000  2018-08             7500

2  B  2018-08-20   2500   9000  2018-08             5000

3  B  2018-09-18   3000   9000  2018-09             2000

4  C  2018-10-03   1000   2000  2018-10             1000

5  C  2018-10-30   1000   2000  2018-10                0

6  D  2018-08-20   2000   3000  2018-08             1000


查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信