我在一个文件夹中有 20 多个 CSV 文件。所有文件都具有相同的结构,它们只是代表不同的日子。例子:Day01.csvDay02.csvDay03.csvDay04.csv(等等...)这些文件只包含两个数字列:x 和 y。我想将所有这些 csv 文件一起附加到一个大文件中,并为文件名(天)添加一列。我探索了类似的示例来生成以下代码,但此代码将每个 y 添加到单独的列(Y1、Y2、Y3、Y4...等)。我只想将此附加文件作为三列:x,y,文件名。如何修改代码以进行正确的追加?我已经尝试过这个例子中的代码:Read multiple csv files and Add filename as new column in pandasimport pandas as pdimport osos.chdir('C:....path to my folder')files = os.listdir()df = pd.concat([pd.read_csv(fp).assign(New=os.path.basename(fp)) for fp in files])但是,此代码不会将所有 Y 值附加到一列下。(然而,所有其他方面似乎都有效)。有人可以帮助编写代码,以便所有 Y 值都在一个列下吗?
2 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
python 擅长这些简单的任务,几乎好得令人难以置信……
fake_files = lambda n: '\n'.join(('%d\t%d'%(i, i+1) for i in range(n, n+3)))
file_name = 'fake_me%s.csv'
with open('my_new.csv', 'wt') as new:
for number in range(3): # os.listdir()
# with open(number) as to_add:
# rows = to_add.readlines()
rows_fake = fake_files(number*2).split('\n')
adjusted_rows = [file_name%number + '\t' + row for row in rows_fake]
new.write('\n'.join(adjusted_rows) + '\n')
调整您的特定 io 和命名,这就是您所需要的。你可以复制代码并运行它并研究它是如何工作的。
添加回答
举报
0/150
提交
取消