pandas,读入多个csv,把它们的第2列取出来,按列concat到新的csv,并为新csv的每列指定一个新的列名,并为每列开始增加一个新的元素,元素值为文件扩展名,列名为输入csv文件名?
时间: 2024-03-09 16:50:03 浏览: 142
好的,我来为您解答这个问题。
首先,我们需要使用 Pandas 库读入多个 csv 文件,可以使用 `pandas.read_csv()` 函数来实现。然后,我们可以使用 `iloc` 方法获取每个 csv 文件的第二列。接着,我们可以使用 `pandas.concat()` 函数将所有的第二列连接起来,并为每列指定一个新的列名。最后,我们可以为每列增加一个新的元素,元素值为文件扩展名,列名为输入 csv 文件名。
下面是代码实现:
```python
import pandas as pd
import os
# 读入多个 csv 文件
path = 'csv_files'
files = os.listdir(path)
dfs = []
for file in files:
if file.endswith('.csv'):
df = pd.read_csv(os.path.join(path, file))
# 取出第二列
df = df.iloc[:, 1]
# 添加新的列名
df.name = file.split('.')[0]
dfs.append(df)
# 将所有的第二列连接起来
result = pd.concat(dfs, axis=1)
# 为每列增加一个新的元素,元素值为文件扩展名,列名为输入 csv 文件名
for column in result.columns:
result[column] = ['.' + file.split('.')[-1] + '_' + str(value) for value in result[column]]
# 保存结果到新的 csv 文件
result.to_csv('result.csv', index=False)
```
其中,`path` 变量为 csv 文件所在的文件夹路径,`result.csv` 为保存结果的文件名。这段代码会将每个 csv 文件的第二列取出来,按列连接起来,并为每列指定一个新的列名,然后为每列增加一个新的元素,最后将结果保存到新的 csv 文件中。
阅读全文