pandas,读入多个csv,把它们的第2列取出来,构造一个新的Series,新的Series index增加2。然后处理后的dataframe concat到新的csv,为新的csv指定新的index和columnn名字
时间: 2024-03-09 08:50:45 浏览: 61
基于pandas向csv添加新的行和列
可以按照以下步骤实现:
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,其中元素是第二列原来的元素。然后,使用`reindex`函数为新的Series的index增加2。例如:
```python
for df in df_list:
new_col = df.iloc[:, 1]
new_col = new_col.reindex(index=new_col.index + 2)
```
上面的代码中,`reindex`函数为新的Series的index增加2,生成一个新的Series。
3. 将新的Series添加到原来的DataFrame中,形成一个新的DataFrame。例如:
```python
for df in df_list:
new_col = df.iloc[:, 1]
new_col = new_col.reindex(index=new_col.index + 2)
new_df = pd.concat([df.iloc[:, 0], new_col], axis=1)
new_df.columns = ['Column1', 'Column2']
```
上面的代码中,`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 = range(new_df.shape[0])
new_df.index.name = 'Index'
new_df.columns = ['Column1', 'Column2']
```
上面的代码中,`concat`函数将多个DataFrame合并成一个,并且使用`ignore_index=True`参数使新的DataFrame的index从0开始连续编号。然后,使用`index`属性为新的DataFrame指定新的index名字。
5. 最后将新的DataFrame写入到一个csv文件中。例如:
```python
new_df.to_csv('new_file.csv')
```
阅读全文