欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pandas技巧分享之讀取多個(gè)文件

 更新時(shí)間:2023年07月05日 08:55:01   作者:databook  
日常分析數(shù)據(jù)時(shí),只有單一數(shù)據(jù)文件的情況其實(shí)很少見,更多的情況是,從同一個(gè)數(shù)據(jù)來源定期或不定期的采集了很多數(shù)據(jù)文件,那么如何讀取多個(gè)文件呢,下面就和大家簡單講講

日常分析數(shù)據(jù)時(shí),只有單一數(shù)據(jù)文件的情況其實(shí)很少見,更多的情況是,我們從同一個(gè)數(shù)據(jù)來源定期或不定期的采集了很多數(shù)據(jù)文件;或者從不同的數(shù)據(jù)源采集多種不同格式的數(shù)據(jù)文件。

在這樣的情況下,分析數(shù)據(jù)之前,需要將不同的數(shù)據(jù)集合并起來。合并數(shù)據(jù)一般有兩個(gè)維度,一是同構(gòu)的數(shù)據(jù)集合并后行數(shù)增加;一是異構(gòu)的數(shù)據(jù)集合并后列數(shù)增加。

1. 同構(gòu)數(shù)據(jù)集

比如我們采集了3個(gè)不同年份的人口統(tǒng)計(jì)文件,分別為:

import pandas as pd
fp1 = "population1.csv"
df = pd.read_csv(fp1)
df

import pandas as pd
fp2 = "population2.csv"
df = pd.read_csv(fp2)
df

import pandas as pd
fp3 = "population3.csv"
df = pd.read_csv(fp3)
df

合并所有的數(shù)據(jù)集可以用 pd.concat 方法,不過一個(gè)一個(gè)文件讀取之后再合并比較麻煩。

如果文件名稱有規(guī)律的話(一般定期采集的數(shù)據(jù)集文件,文件名都有一定的規(guī)律),可以通過 glob 庫(支持通配符匹配)來匹配所有數(shù)據(jù)文件。

然后利用python代碼的靈活性一次合并所有的數(shù)據(jù)。

from glob import glob
files = sorted(glob("./population[1-3].csv"))
df = pd.concat((pd.read_csv(f) for f in files))
df

這樣合并之后,發(fā)現(xiàn)索引是有重復(fù)的,如果要保持索引的唯一性,可以在合并時(shí)指定 ignore_index=True。

df = pd.concat((pd.read_csv(f) for f in files), ignore_index=True)
df

2. 異構(gòu)數(shù)據(jù)集

異構(gòu)的數(shù)據(jù)集指數(shù)據(jù)結(jié)構(gòu)不一樣的數(shù)據(jù),一般來自于不同的數(shù)據(jù)源。

比如:

import pandas as pd
fp1 = "population-total.csv"
df = pd.read_csv(fp1)
df

import pandas as pd
fp2 = "population-man.csv"
df = pd.read_csv(fp2)
df

import pandas as pd
fp3 = "population-woman.csv"
df = pd.read_csv(fp3)
df

合并的方式和前面按行合并類似,區(qū)別在于指定 axis=1。

from glob import glob
files = sorted(glob("./population-*.csv"))
df = pd.concat((pd.read_csv(f) for f in files), axis=1)
df

合并之后發(fā)現(xiàn)有重復(fù)的列,對于重復(fù)的行,可以簡單的通過 drop_duplicates()方法來去重,去除重復(fù)的列則需要一些技巧。

df = df.loc[:, ~df.columns.duplicated()]
df

這樣就去除了重復(fù)的列,完成了異構(gòu)數(shù)據(jù)集的合并。

到此這篇關(guān)于Pandas技巧分享之讀取多個(gè)文件的文章就介紹到這了,更多相關(guān)Pandas讀取多個(gè)文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論