如何根据列将文件夹中的所有csv文件合并为一个单独的csv文件?

6 浏览
0 Comments

如何根据列将文件夹中的所有csv文件合并为一个单独的csv文件?

给定一个包含多个具有不同列长度的csv文件的文件夹

必须使用Python的pandas将它们合并为一个单独的csv文件,并将文件名作为一列打印出来。

输入:https://www.dropbox.com/sh/1mbgjtrr6t069w1/AADC3ZrRZf33QBil63m1mxz_a?dl=0

输出:

编号  零食        价格    表名
5   橙子        55     Sheet1
7   苹果        53     Sheet1
8   哈密瓜      33     Sheet1
11  橙子                Sheet2
12  青苹果              Sheet2
13  哈密瓜              Sheet2

0
0 Comments

问题出现的原因:

在处理csv文件时,需要将一个文件夹中的所有csv文件合并成一个单独的csv文件,并且基于某些列进行合并。这个问题的出现可能是因为需要将多个csv文件的数据整合到一个文件中,并且只保留特定的列。

解决方法:

1. 首先,使用glob模块来获取文件夹中所有的csv文件路径。

2. 然后,使用pandas库的read_csv函数读取每个csv文件,并使用assign函数为每个数据框添加一个新的列,该列的值为文件名去掉扩展名后的部分。

3. 接下来,使用pandas库的concat函数将所有的数据框合并成一个数据框,并使用ignore_index参数重置索引。

4. 最后,打印合并后的数据框。

如果需要在处理数据表时将列名转换为小写,可以使用以下代码:

df.columns = df.columns.str.lower()

如果在处理过程中出现UnicodeDecodeError错误,可能是因为数据的编码问题。可以参考以下链接中的解决方案:

https://stackoverflow.com/q/48647122

https://stackoverflow.com/a/33819765

https://stackoverflow.com/q/31558994

0