pandas,读入多个csv,把它们的第2列取出来,增加两个元素,列长增加2。然后处理后的dataframe concat到新的csv,为新的csv指定新的index和columnn名字
时间: 2024-03-09 20:50:36 浏览: 15
可以按照以下步骤实现:
1. 使用pandas的`read_csv`函数读入多个csv文件,可以使用一个for循环遍历每个文件,并将读入的数据存储到一个列表中。例如:
```python
import pandas as pd
csv_list = ['file1.csv', 'file2.csv', 'file3.csv']
df_list = []
for csv_file in csv_list:
df = pd.read_csv(csv_file)
df_list.append(df)
```
2. 对每个读入的DataFrame,取出第二列,构造一个新的Series,其中元素是第二列原来的元素加上两个新元素。例如:
```python
for df in df_list:
new_col = df.iloc[:, 1].apply(lambda x: pd.Series([str(x), 'A', 'B']))
```
上面的代码中,`apply`函数对第二列中的每个元素进行处理,生成一个新的Series,其中每个元素是一个含有3个元素的列表,分别是原来的元素、字符串'A'、字符串'B'。
3. 将新的Series添加到原来的DataFrame中,形成一个新的DataFrame。例如:
```python
for df in df_list:
new_col = df.iloc[:, 1].apply(lambda x: pd.Series([str(x), 'A', 'B']))
new_df = pd.concat([df.iloc[:, 0], new_col], axis=1)
new_df.columns = ['Column1', 'Column2', 'Column3', 'Column4']
```
上面的代码中,`concat`函数将原来的DataFrame中的第一列和新生成的Series合并,生成一个新的DataFrame。合并时,需要指定`axis=1`,表示按列合并。然后,使用`columns`属性为新的DataFrame指定列名。
4. 使用pandas的`concat`函数将多个DataFrame合并成一个,并指定新的index和column名字。例如:
```python
new_df = pd.concat(df_list, ignore_index=True, axis=0)
new_df.index.name = 'Index'
new_df.columns = ['Column1', 'Column2', 'Column3', 'Column4']
```
5. 最后将新的DataFrame写入到一个csv文件中。例如:
```python
new_df.to_csv('new_file.csv')
```