首页 > 解决方案 > 我有 25 个 .csv 文件(每个文件都是一个抄写员),它们都具有相同的结构(X、Y 和 STATUE)。我想将它们全部合并到一个大的 .txt 文件中

问题描述

所以我尝试了这个并将所有文件(25 个抄写员文件)合并为一个。每个划线器包含 3330 ID 号,并且有一个坐标 X 和 Y 来突出显示每个 ID 号的缺陷数量 (STATUE)。我想知道所有组合文件中每个 ID 号的 STATUE 总和。

import os
import pandas as pd
from glob import glob

stock_files = sorted(glob('*AVI.als'))
dfList = []
stock_files


df = pd.concat((pd.read_csv(file).assign(filename = file) for file in stock_files), ignore_index = True)




X\tY\tSTATUS    filename
0   14\t1\t0    2008-09728-AVI.als
1   15\t1\t0    2008-09728-AVI.als
2   16\t1\t0    2008-09728-AVI.als
3   17\t1\t0    2008-09728-AVI.als
4   18\t1\t0    2008-09728-AVI.als
... ... ...
83245   30\t90\t0   2008-13754-AVI.als
83246   31\t90\t0   2008-13754-AVI.als
83247   32\t90\t0   2008-13754-AVI.als
83248   33\t90\t0   2008-13754-AVI.als
83249   34\t90\t0   2008-13754-AVI.als

对于所有 CSV 文件合并为一个 .txt 文件,我应该看到如下结果

X  Y STATUS
0   14 1 0
1   15 1 0  
2   16 1 0  
3   17 1 0
4   18 1 0
...
3330

任何帮助深表感谢

标签: pythonpandasdatabasedataframe

解决方案


我认为您只需要添加分隔符(sep=r"\t"):

df = pd.concat([pd.read_csv(file, sep=r"\t").assign(filename = file) for file in stock_files], ignore_index = True)

您可以像这样简单地保存到 .txt:

df.to_csv("output.txt")

如果您想要每个 ID (X) 的 STATUS 总和,您可以这样做:

df.groupby(["X"])["STATUS"].sum()

推荐阅读