python如何將兩個(gè)數(shù)據(jù)表中的對(duì)應(yīng)數(shù)據(jù)相加
python兩個(gè)數(shù)據(jù)表中的對(duì)應(yīng)數(shù)據(jù)相加
記錄一下自己的學(xué)習(xí)過程。
有很多省份的數(shù)據(jù),想要求全國(guó)的綜合。
這些數(shù)據(jù)都分別存在csv里。
如下:



我希望把全部省份加起來, 算一個(gè)全國(guó)總和。這時(shí)候需要用到數(shù)據(jù)表對(duì)應(yīng)值相加。
代碼如下:
先讀進(jìn)來一個(gè)數(shù)據(jù)表,比如
df1 是湖北的。
在df1 的基礎(chǔ)上創(chuàng)建一個(gè)空表。
df_empty = pd.DataFrame(np.zeros(df1.shape), columns=df1.columns, index=df1.index)
這樣df_empty是

然后寫一個(gè)for循環(huán),逐個(gè)加進(jìn)來。
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)中間有很多打印的內(nèi)容,其實(shí)關(guān)鍵的是其中兩句。
dfi = pd.read_csv(os.path.join(result_data_dir, result_list[i]), index_col='year')
這一句保證讀進(jìn)來的數(shù)據(jù)索引相同,列相同。
相加,
df_empty = df_empty.add(dfi, fill_value = 0)
這一句可以讓數(shù)據(jù)表相加,相當(dāng)于矩陣的點(diǎn)加。
得到最后結(jié)果如下

其中fill_value=0,不能省略,因?yàn)槿绻患?,那么add的時(shí)候,會(huì)把一些有缺失的格變成缺失,最后加起來會(huì)有很多缺失。
看樣子原來沒有的行,比如2010,會(huì)自動(dòng)添加進(jìn)去。總和數(shù)據(jù)表里多了2010這一行。
三種Python中兩個(gè)列表數(shù)字“相加”方法
最近我在用Python處理數(shù)據(jù)時(shí),需要將列表數(shù)據(jù)相加實(shí)現(xiàn)“累積”效果的。
需要注意,我這里所說的列表相加,并非是下面這種“列表元素相加”的情況。
list_1 = [1, 2, 3] list_2 = [4, 5, 6] print(list_1 + list_2)
輸出:
[1, 2, 3, 4, 5, 6]
注:列表元素的添加方式中,除了+號(hào)還有append()、extend()等方法。
我們目前的兩個(gè)列表元素都是int整數(shù)型,其次它們長(zhǎng)度相同,我們想要對(duì)應(yīng)索引位置元素相加,生成新的列表list_3。
for循環(huán)
在交互式環(huán)境中輸入如下命令:
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 內(nèi)置的高階函數(shù),它接收一個(gè)函數(shù) f 和一個(gè) list,并通過把函數(shù) f 依次作用在 list 的每個(gè)元素上,得到一個(gè)新的 list 并返回。
在交互式環(huán)境中輸入如下命令:
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
在交互式環(huán)境中輸入如下命令:
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]
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python中使用百度音樂搜索的api下載指定歌曲的lrc歌詞
這篇文章主要介紹了python中使用百度音樂搜索的api下載指定歌曲的lrc歌詞,同時(shí)也分析出了歌曲的下載地址,需要的朋友可以參考下2014-07-07
python機(jī)器學(xué)習(xí)Github已達(dá)8.9Kstars模型解釋器LIME
這篇文章主要為大家介紹了Github已達(dá)8.9Kstars的最佳模型解釋器LIME的使用示例及功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型
這篇文章主要介紹了python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python查詢MySQL將數(shù)據(jù)寫入Excel
這篇文章主要介紹了python如何查詢MySQL將數(shù)據(jù)寫入Excel,幫助大家利用python高效的辦公,感興趣的朋友可以了解下2020-10-10
Python+OpenCV實(shí)現(xiàn)角度測(cè)量的示例代碼
本文介紹如何使用python語言實(shí)現(xiàn)角度測(cè)量,程序包括鼠標(biāo)選點(diǎn)、直線斜率計(jì)算、角度計(jì)算三個(gè)子程序和一個(gè)主程序,感興趣的可以了解一下2022-03-03
Python移動(dòng)文件到新文件夾的完整指南與實(shí)用技巧
本文將詳細(xì)介紹如何使用Python高效安全地移動(dòng)文件到新文件夾,同時(shí)保持文件名不變,并提供多種實(shí)用場(chǎng)景的解決方案,有需要的小伙伴可以了解下2026-01-01

