python两个数据表中的对应数据相加

记录一下自己的学习过程。

有很多省份的数据,想要求全国的综合。这些数据都分别存在csv里。如下:

我希望把全部省份加起来, 算一个全国总和。这时候需要用到数据表对应值相加。

代码如下:

先读进来一个数据表,比如

df1 是湖北的。

在df1 的基础上创建一个空表。

df_empty = pd.DataFrame(np.zeros(df1.shape), columns=df1.columns, index=df1.index)

这样df_empty是

然后写一个for循环,逐个加进来。

for i in range(len(result_list)):
    print("\n************\n")
    print(result_list[i])
    print(prov_list[i])
    dfi = pd.read_csv(os.path.join(result_data_dir, result_list[i]), index_col='year')
    print(dfi)
    dfi = dfi.fillna(0)
    print(i)
    df_empty = df_empty.add(dfi, fill_value = 0)
    print(df_empty)

中间有很多打印的内容,其实关键的是其中两句。

dfi = pd.read_csv(os.path.join(result_data_dir, result_list[i]), index_col='year')
这一句保证读进来的数据索引相同,列相同。

相加,

df_empty = df_empty.add(dfi, fill_value = 0)

这一句可以让数据表相加,相当于矩阵的点加。

得到最后结果如下

其中fill_value=0,不能省略,因为如果不加,那么add的时候,会把一些有缺失的格变成缺失,最后加起来会有很多缺失。

看样子原来没有的行,比如2010,会自动添加进去。总和数据表里多了2010这一行。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值