大熊猫递归read_csv,同时将列添加到每个

时间:2019-06-04 18:59:33

标签: python pandas generator

我递归地读取多个目录中的许多csv,每次读取其中的csv我都想添加一列名为num的列,该列只是列表中该csv的索引。

path = r'data/'
all_files = glob.glob(os.path.join(path, "**/*.csv"), recursive=True)

有了文件名后,我想读入每个文件名,然后添加该列,但将其留作生成器,以供以后concat使用。是否可以enumerate生成器?

df_from_each_file = (pd.read_csv(f) for f in all_files)
df_from_each_file = (df.insert(0,'num',i,allow_duplicates=True) for i, df in enumerate(df_from_each_file))
concatenated_df   = pd.concat(df_from_each_file, ignore_index=True)

这只会返回一堆None df

1 个答案:

答案 0 :(得分:2)

@propertyDelegate中使用enumerateDataFrame.assign,例如:

generator