将不同文件夹下相同的csv文件,找出并合并
时间: 2023-02-11 10:40:21 浏览: 112
可以使用 Python 的 pandas 库来实现这个功能。下面是一个示例代码,它将在指定的文件夹和子文件夹下查找所有后缀名为 ".csv" 的文件,并将它们合并到一个新的 csv 文件中:
```python
import os
import glob
import pandas as pd
path = r"path\to\folder" # 替换成要查找的文件夹路径
all_csv_files = glob.glob(path + "/**/*.csv", recursive=True)
# 创建空的 DataFrame 来存储所有 csv 文件中的数据
df = pd.DataFrame()
for file in all_csv_files:
df_temp = pd.read_csv(file)
df = pd.concat([df, df_temp])
# 将合并后的数据写入新的 csv 文件
df.to_csv("merged_data.csv", index=False)
```
注意,如果所有 csv 文件的格式不一致,可能需要在读取和合并时使用不同的参数或进行数据清洗。
相关问题
在多个文件夹里寻找相同的csv,再合并到一个csv文件
### 回答1:
你可以使用 Python 来实现这个功能。首先,可以使用 os 模块来遍历多个文件夹并查找 csv 文件。然后,可以使用 pandas 库读取 csv 文件并将它们合并到一个新的 DataFrame 中。最后,使用 pandas 库的 to_csv 方法将合并后的数据写入一个新的 csv 文件中。
具体来说,你可以这样做:
1. 遍历文件夹,查找 csv 文件:
```
import os
csv_files = []
# 遍历文件夹
for root, dirs, files in os.walk('path/to/folder'):
# 在遍历的过程中,查找 csv 文件
for file in files:
if file.endswith('.csv'):
csv_files.append(os.path.join(root, file))
```
2. 读取 csv 文件并将它们合并到一个新的 DataFrame 中:
```
import pandas as pd
df = pd.DataFrame()
# 遍历 csv 文件列表
for file in csv_files:
# 读取 csv 文件
df_temp = pd.read_csv(file)
# 将 csv 文件合并到新的 DataFrame 中
df = df.append(df_temp)
```
3. 将合并后的数据写入一个新的 csv 文件中:
```
df.to_csv('path/to/output.csv', index=False)
```
这样就可以在多个文件夹中查找相同的 csv 文件,并将它们合并到一个新的 csv 文件中。
### 回答2:
在多个文件夹中寻找相同的csv文件,并将它们合并到一个csv文件中,可以按照以下步骤进行操作。
1. 首先,我们需要创建一个空的csv文件,作为最终合并后的文件。可以使用Python中的csv库或pandas库来创建和操作csv文件。
2. 接下来,使用一个循环遍历每个文件夹。可以使用os库中的函数来获取文件夹的路径。
3. 在每个文件夹中,使用一个循环遍历文件夹下的所有文件。可以使用os库中的函数来获取文件夹内的所有文件。
4. 对于每个文件,检查其文件名是否以".csv"结尾,以确保只选择csv文件。
5. 如果文件是一个csv文件,可以使用csv库或pandas库来读取该文件的内容。将该csv文件的内容保存到一个临时变量中。
6. 将临时变量中的内容写入到最终的目标csv文件中。可以使用csv库或pandas库中的函数来实现。
7. 循环遍历完所有的文件夹和文件后,最终的目标csv文件将包含所有符合条件的csv文件的内容。
请注意,以上是一个简单的示例步骤,具体的代码实现可能会因实际情况而异。您可以根据自己的需求进行代码的编写和修改。此外,还可以根据具体情况添加错误处理和其他必要的功能,以确保代码的可靠性和稳定性。
### 回答3:
在Python中,可以使用os模块和pandas库实现在多个文件夹中寻找相同的csv文件,并将它们合并到一个csv文件中。
首先,需要导入必要的模块和库:
```python
import os
import pandas as pd
```
接下来,我们需要定义一个函数来寻找文件夹中的csv文件:
```python
def find_csv_files(folder_path):
csv_files = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.csv'):
csv_files.append(os.path.join(root, file))
return csv_files
```
然后,我们可以调用这个函数来找出多个文件夹中的csv文件:
```python
folder_paths = ['folder1', 'folder2', 'folder3'] # 替换成实际的文件夹路径
csv_files = []
for folder_path in folder_paths:
csv_files += find_csv_files(folder_path)
```
接下来,我们使用pandas库的concat函数将这些csv文件合并为一个数据框:
```python
dataframes = []
for csv_file in csv_files:
df = pd.read_csv(csv_file)
dataframes.append(df)
merged_df = pd.concat(dataframes)
```
最后,我们将合并后的数据框保存为一个csv文件:
```python
merged_df.to_csv('merged.csv', index=False) # 替换成实际的文件名和路径
```
以上就是在多个文件夹里寻找相同的csv文件并将它们合并到一个csv文件的步骤。
阅读全文