我想自动化一个过程,分配几个文件的标签。意外地,有人创建了许多文件(csv),如下所示:
文件名1: test_1.csv
```
Node Target Char1 Var2 Start
1 2 23.1 No 1
1 3 12.4 No 1
1 4 52.1 Yes 1
1 12 14.5 No 1
文件名2: `test_2.csv` ```
Node Target Char1 Var2 Start
1 2 23.1 No 1
1 3 12.4 No 1
1 4 52.1 Yes 1
1 12 14.5 No 1
2 1 23.1 No 0
2 41 12.4 Yes 0
3 15 8.2 No 0
3 12 63.1 No 0
文件名3: test_3.csv
```
Node Target Char1 Var2 Start
1 2 23.1 No 1
1 3 12.4 No 1
1 4 52.1 Yes 1
1 12 14.5 No 1
2 1 23.1 No 0
2 41 12.4 Yes 0
3 15 8.2 No 0
3 12 63.1 No 0
41 2 12.4 Yes 0
15 3 8.2 No 0
15 8 12.2 No 0
12 3 63.1 No 0
从我所看到的,csv文件是创建的,包括以前运行的数据。我想添加一个列,该列考虑到它来自的数据集,没有重复项,也就是说,只考虑在下一个数据集中添加了什么。例如,这意味着要有一个包含所有数据的唯一csv文件:
文件名全部: `test_all.csv` ```
Node Target Char1 Var2 Start File
1 2 23.1 No 1 1
1 3 12.4 No 1 1
1 4 52.1 Yes 1 1
1 12 14.5 No 1 1
2 1 23.1 No 0 2
2 41 12.4 Yes 0 2
3 15 8.2 No 0 2
3 12 63.1 No 0 2
41 2 12.4 Yes 0 3
15 3 8.2 No 0 3
15 8 12.2 No 0 3
12 3 63.1 No 0 3
我正在考虑计算数据集之间的差异(以行为单位),并在此基础上添加一个新列。但是,我正在一个接一个地这样做,这是不可行的,因为我有,例如:
test_1.csv, test_2.csv, test_3.csv, ... , test_7.csv
filex_1.csv, filex_2.csv, ..., filex_7.csv
name_1.csv, name_2.csv, ..., name_7.csv
等等
后缀 _x
从 1
到 7
:唯一的更改是文件名(例如。, filex, test, name,
和许多其他人)。
你能给我一些关于如何以一种更简单、更快的方式运行它的提示吗?例如,使用一个for循环,它考虑后缀并根据每个文件的新信息创建一个新列?如果你需要的话,我很乐意提供更多的信息和细节。
2条答案
按热度按时间ztigrdn81#
你可以试试这样做。
x8goxv8g2#
你可以通过
pd.concat
和keys
-参数(文档)。输出
为了在文件中保留重复项,我们可以临时将级别1索引设置为列,以便
drop_duplicates
仅在跨文件复制时匹配。输出