與creating an empty dataframe and populating rows later不同,我有許多需要連接的數據幀。初始化一個空的DataFrame並添加行
如果只有兩個數據幀,我可以這樣做:
df1 = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
df1.append(df2, ignore_index=True)
想象我有幾百萬的df
需要追加/每次我讀了一個新的文件轉換成數據幀對象時串聯。
但是,當我試圖初始化一個空數據幀,然後通過循環將新dataframes:
import pandas as pd
alldf = pd.DataFrame(, columns=list('AB'))
for filename in os.listdir(indir):
df = pd.read_csv(indir+filename, delimiter=' ')
alldf.append(df, ignore_index=True)
這隻有標題行,例如返回一個空alldf
alldf = pd.DataFrame(columns=list('AB'))
df1 = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
for df in [df1, df2]:
alldf.append(df, ignore_index=True)
你剛剛絆倒了,因爲DataFrame.append不會發生就地(不像list.append)?如果是這樣,我肯定這是一個重複的事情。 [你真的不想使用追加,你想先讀取所有內容並連接 - 追加會非常慢。] – DSM
謝謝@DSM,有點。我會想,append不會做任何事情,直到有某種'pd.commit()'就像一個DB =( – alvas