与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