目录
- python两个数据表中的对应数据相加
- 三种Python中两个列表数字“相加”方法
- for循环
- map()
- numpy
- 总结
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(resuljavascriptt_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的www.devze.com时候,会把一些有缺失的格变成缺失,最后加起来会有很多缺失。
看样子原来没有的行,比如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_2android)) print(list_3)
输出:
[5, 7, 9]
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论