2014-12-05 54 views
0

我來自R(和SAS),並且在讀取大量.txt文件(全部存儲在同一目錄中)時出現問題,並且正在創建熊貓中的一個大型數據框。到目前爲止,我已經嘗試了代碼的合併 - 所有這些都失敗了。我想這是一個簡單的任務,但缺乏在蟒蛇的經驗...Python讀取多個.txt文件和使用熊貓進行行綁定

如果有幫助,這是該數據我想創建一個的大數據幀有:http://www.ssa.gov/oact/babynames/limits.html - 國家特定集合(50總,命名爲他們的國家abbreviation.txt)

請幫忙!

import pandas as pd 

import glob 

filelist = glob.glob("C:\Users\Dell\Downloads\Names\*.txt") 

names = ['state', 'gender', 'year', 'name', 'count'] 

然後,我在考慮使用pd.concat的,但我不知道 - 本質上我想在每個數據集閱讀,然後row.bind集合在一起(因爲它們都具有相同的列)..

回答

1

concat很好,因爲默認情況下「連接」設置爲「外部」(即索引的聯合)。您可以輕鬆使用df.join(),但必須將「how」指定爲「outer」。無論哪種方式,你可以建立一個數據幀很簡單:

import pandas as pd 
from glob import glob as gg 

data = pd.DataFrame() 
names = ['state', 'gender', 'year', 'name', 'count'] 

for f in gg('*.txt'): 
    tmp = pd.read_csv(f,columns=names) 

    data = pd.concat([data,tmp],axis=0,ignore_index=True) 
+0

我得到一個'類型錯誤:「名單」對象不是callable'錯誤... – gh0strider18 2014-12-07 01:23:14

+0

我的代碼是:'進口大熊貓作爲PD 進口水珠 gg = glob.glob(「C:\ Users \ Dell \ Downloads \ Names \ * .txt」) data = pd.DataFrame() names = ['state','gender','year', 'name','count'] for gg('*。txt'): tmp = pd.read_csv(f,columns = names) data = pd.concat([data,tmp],axis = 0,ignore_index = True)' – gh0strider18 2014-12-07 01:23:36

+0

你有gg定義爲glob.glob('path * .txt')。看看我上面的例子,瞭解如何使用glob並實現它。 – tnknepp 2014-12-07 01:31:29