如何将两个列表中的数据纵向堆叠合并到一个csv文件中
时间: 2024-02-01 18:16:08 浏览: 101
可以使用Python中的pandas库来实现将两个列表中的数据纵向堆叠合并到一个csv文件中的操作。具体步骤如下:
1.导入pandas库
```python
import pandas as pd
```
2.定义两个列表,并将它们转换为pandas的DataFrame对象
```python
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
df1 = pd.DataFrame(list1, columns=['col1'])
df2 = pd.DataFrame(list2, columns=['col1'])
```
3.使用pandas的concat函数将两个DataFrame对象纵向堆叠合并
```python
df_concat = pd.concat([df1, df2])
```
4.将合并后的结果保存到csv文件中
```python
df_concat.to_csv('merged.csv', index=False)
```
以上代码将生成一个名为merged.csv的csv文件,其中包含了两个列表中的数据纵向堆叠合并后的结果。
相关问题
python导入三个班的文件,分别合并名单表和成绩表(纵向堆叠),并导出为“名单表.xlsx”和“成绩表.xlsx”,要求不写入索引,且可正常显示学号
在Python中,你可以使用pandas库来处理这种数据操作。首先,确保你已经安装了`pandas`, `openpyxl`和`os`这三个库。如果你还没有安装,可以使用`pip install pandas openpyxl os`命令安装。
下面是一个示例代码,说明如何导入三个班级的CSV文件,合并数据,然后保存为Excel文件:
```python
import pandas as pd
from openpyxl import Workbook
import os
# 假设你的班级文件名分别是"class1.csv", "class2.csv", "class3.csv"
file_list = ['class1.csv', 'class2.csv', 'class3.csv']
# 合并数据
all_data = []
for filename in file_list:
data = pd.read_csv(filename)
# 将每个班级的数据框按学号堆叠
all_data.append(data.set_index('学号').stack().reset_index())
# 合并所有数据
merged_df = pd.concat(all_data, ignore_index=True)
# 清除索引列
merged_df = merged_df.drop(columns=['level_0'])
# 选择显示的列(这里假设姓名和成绩是需要显示的)
display_columns = ['姓名', '成绩']
display_df = merged_df[display_columns]
# 创建一个新的工作簿,并设置默认值不包含索引
workbook = Workbook()
sheet = workbook.active
sheet.title = "名单表"
# 写入数据到excel文件
with pd.ExcelWriter('名单表.xlsx', engine='openpyxl') as writer:
display_df.to_excel(writer, sheet_name='名单表', index=False)
# 对于成绩表,如果成绩也是单独的文件,类似地操作。如果没有单独文件,可以将成绩添加到上面的display_df中
# 如果有成绩表文件名列表(例如'score_files.txt'),则按照同样的方式读取并合并,然后另存为"成绩表.xlsx"
```
这个脚本会生成两个Excel文件:"名单表.xlsx"和"成绩表.xlsx"(如果有成绩表的话)。注意,你需要根据实际的文件路径、列名以及结构调整代码。
阅读全文