python 判断多个csv文件是否具有相同列名,将列名相同的列数据复制后存放在一个新csv文件中
时间: 2024-05-15 22:18:25 浏览: 132
您可以使用Python中的pandas库处理这个问题。具体流程如下:
1. 首先,使用pandas的read_csv()函数分别读取每个csv文件,存储到DataFrame中。
2. 使用DataFrame的columns属性获取每个DataFrame的列名列表。
3. 使用set()函数将每个DataFrame的列名列表转换为集合类型,并使用集合的intersection()方法获取列名相同的列名集合。
4. 遍历每个列名相同的列名集合,使用DataFrame的loc()方法将每个DataFrame对应列的数据复制到新的DataFrame中。
5. 最后,使用pandas的to_csv()函数将新的DataFrame保存为一个新csv文件。
下面是示例代码:
```python
import pandas as pd
import glob
# 获取所有csv文件的文件名列表
file_list = glob.glob("*.csv")
# 读取所有csv文件,存储到DataFrame列表中
dfs = []
for filename in file_list:
df = pd.read_csv(filename)
dfs.append(df)
# 获取每个DataFrame的列名列表
col_lists = [set(df.columns) for df in dfs]
# 获取列名相同的列名集合
common_cols = set.intersection(*col_lists)
# 新建一个空的DataFrame
merged_df = pd.DataFrame()
# 复制所有列名相同的列到新的DataFrame中
for col in common_cols:
for df in dfs:
if col in df.columns:
merged_df[col] = df[col]
# 将新的DataFrame保存为一个新csv文件
merged_df.to_csv("merged.csv", index=False)
```
请注意,在上面的代码中,我们假设所有的csv文件都具有相同的分隔符,并且文件名中不包含任何分隔符。如果您的csv文件不符合这些假设,您需要相应地对代码进行修改。
阅读全文