pandas,读入多个csv,把它们的第2列取出来,按列concat到新的csv,并为新csv的每列指定一个新的列名,列名为输入csv文件名?
时间: 2024-03-09 17:49:30 浏览: 154
可以使用 Pandas 库中的 read_csv() 和 concat() 方法实现读取多个 CSV 文件并进行列的拼接。以下是一份示例代码:
```python
import pandas as pd
import os
# 设置文件夹路径和输出文件路径
folder_path = '/path/to/csv/folder'
output_path = '/path/to/output/csv'
# 获取文件夹中的所有 CSV 文件
csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]
# 创建一个空 DataFrame 用于存储拼接结果
result_df = pd.DataFrame()
# 循环读取每个 CSV 文件并进行列拼接
for file_name in csv_files:
# 获取 CSV 文件路径
file_path = os.path.join(folder_path, file_name)
# 读取 CSV 文件并取出第二列
df = pd.read_csv(file_path, usecols=[1])
# 将每列重命名为对应文件名
df.columns = [os.path.splitext(file_name)[0]]
# 将当前文件的列拼接到结果 DataFrame 中
result_df = pd.concat([result_df, df], axis=1)
# 将结果 DataFrame 写入输出文件
result_df.to_csv(output_path, index=False)
```
以上代码将指定文件夹中的所有 CSV 文件按列进行拼接,每列的列名为对应的输入文件名,并将结果写入到指定的输出文件。你可以根据实际情况进行修改。
阅读全文