【发布时间】:2017-07-24 07:39:26
【问题描述】:
我需要将许多(数百个)CSV 提取到 pandas 数据框中。我需要在读入每个 CSV 文件的 pandas 数据框时在列中添加文件的创建日期。我可以使用此调用获取 CSV 文件的创建日期:
time.strftime('%m/%d/%Y', time.gmtime(os.path.getmtime('/path/file.csv')))
作为参考,这是我用来读取 CSV 的命令:
path1 = r'/path/'
all_files_standings = glob.glob(path1 + '/*.csv')
standings = pd.concat((pd.read_csv(f, low_memory=False, usecols=[7, 8, 9]) for f in standings))
我尝试运行此调用(有效):
dt_gm = [time.strftime('%m/%d/%Y', time.gmtime(os.path.getmtime('/path/file.csv')))]
然后我尝试扩展它:
dt_gm = [time.strftime('%m/%d/%Y', time.gmtime(os.path.getmtime(f) for f in all_files_standings))]
我得到这个错误:
TypeError:需要一个整数(获取类型生成器)
我该如何解决这个问题?
【问题讨论】:
-
你想按列(坏主意)还是按行(更好的主意)将 csvs 读入数据帧?
-
我不知道有什么不同...
-
如果你添加列,它看起来像
f1_c1,f1_c2,f2_c1,f2_c2,...,如果你添加行,它就像c1,c2,并且行将具有文件的值。首先是 file1 行,然后是 file2 行,依此类推。 -
好的,是的。我按行添加它们
-
我已经添加了一个答案。看看这是否适合你。
标签: python csv pandas operating-system