python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python两个数据表中的对应数据相加

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

作者:JECK_ケーキ

这篇文章主要介绍了python如何将两个数据表中的对应数据相加问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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这一行。

三种Python中两个列表数字“相加”方法

最近我在用Python处理数据时,需要将列表数据相加实现“累积”效果的。

需要注意,我这里所说的列表相加,并非是下面这种“列表元素相加”的情况。

list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
print(list_1 + list_2)

输出:

[1, 2, 3, 4, 5, 6]

注:列表元素的添加方式中,除了+号还有append()、extend()等方法。

我们目前的两个列表元素都是int整数型,其次它们长度相同,我们想要对应索引位置元素相加,生成新的列表list_3。

for循环

在交互式环境中输入如下命令:

list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
list_3 = []
for index, item in enumerate(list_1):
    list_3.append(item + list_2[index])
print(list_3)

输出:

[5, 7, 9]

map() 

map() 是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

在交互式环境中输入如下命令:

list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
list_3 = list(map(lambda x, y: x + y, list_1, list_2))
print(list_3)

输出:

[5, 7, 9]

numpy 

在交互式环境中输入如下命令:

list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
import numpy as np
list_3 = list(np.add(list_1, list_2))
print(list_3)

输出:

[5, 7, 9]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文