Python Pandas两个DataFrame的对应列逻辑操作

Python Pandas两个DataFrame的对应列逻辑操作

Python Pandas两个DataFrame行索引不完全相同,但是需要求两个DataFrame对应行进行逻辑操作。

例如:公司在多个银行有账户,现公司本月有收入表和支出表,需要计算在各银行的结余情况。两个表的DataFrame如下:

收入表(income)

收入
中国工商银行30000
中国农业银行10000
中国银行20000
中国建设银行50000
交通银行60000

支出表(payout)

支出
中国工商银行20000
中国农业银行30000
中国邮政储蓄银行10000

解决方法:

直接使用join合成一个表,将支出表中支出列变成收入表中的一个列,再进行逻辑操作。

合并

merge_df = income.join(payout)
收入支出
中国工商银行3000020000
中国农业银行1000030000
中国银行20000NaN
中国建设银行50000NaN
交通银行60000NaN
中国邮政储蓄银行NaN10000

填充 NaN

merge_df.fillna(0, inplace=True)
收入支出
中国工商银行3000020000
中国农业银行1000030000
中国银行200000
中国建设银行500000
交通银行600000
中国邮政储蓄银行010000

计算结余

merge_df.loc[:, '结余'] = merge_df.loc[:, '收入'] - merge_df.loc[:, '支出']
收入支出结余
中国工商银行300002000010000
中国农业银行1000030000-20000
中国银行20000020000
中国建设银行50000050000
交通银行60000060000
中国邮政储蓄银行010000-10000

总计

merge_df.loc['总计', :] = merge_df.sum()
收入支出结余
中国工商银行300002000010000
中国农业银行1000030000-20000
中国银行20000020000
中国建设银行50000050000
交通银行60000060000
中国邮政储蓄银行010000-10000
总计170000060000110000
  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值