开发者

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

目录
  • python两个数据表中的对应数据相加
  • 三种Python中两个列表数字“相加”方法
    • for循环
    • map() 
    • numpy 
  • 总结

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

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

    有很多省份的数据,想要求全国的综合。

    这些数据都分别存在csv里。

    如下:

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

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

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

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

    代码如下:

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

    df1 是湖北的。

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

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

    这样df_empty是

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

    然后写一个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)

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

    得到最后结果如下

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

    其中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)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜