总结:主要用了pandas的to_csv()的方法来写入csv。
先将字典转换成 DataFrame类型数据,然后使用DataFrame.to_csv()即可完成存储。
例:
List1 = {'学号': [6812, 6952, 6905], '姓名': ['一', '二', '三'], '排名': [1, 6, 9]}
df = pd.DataFrame(List1, index=range(0, 3))
df.to_csv('last.csv', index=False, encoding='gbk')结果:

2、列表存入csv
之前的需求:
import pandas as pd
data = pd.read_csv('newdata.csv', encoding='utf-8') # 含有成绩等的数据,但是没有班级信息
stu_class = pd.read_csv('班级.csv', encoding='utf-8') # 仅含有班级和姓名的数据
dic = {}
score_index = 0 # 包含学生成绩的数据索引
class_index = -1 # 包含学生班级的数据索引
for name in stu_class['姓名']:
class_index += 1
for stu_score in data['姓名']:
if score_index == len(data):
score_index = 0
break
elif name != stu_score:
score_index += 1
continue
elif name == stu_score:
# 这里需要特别注意:班级跟成绩不是同一个index
dic[name] = (stu_class['班级'][class_index][6:7], data['体测成绩'][score_index], data['学年平均学分绩点'][score_index], data['综合测评总分排名'][score_index], data['综合测评总分(百分制、精确到小数点后4位)'][score_index], data['学业成绩考核排名'][score_index])
score_index = 0
break
else:
pass
'''
说明:存储到csv文件中时,必须是数据框类型的数据才有to_csv的函数!且columns对应的数据必须是一个列表
'''
last_class = list()
last_pe = list()
last_gpa = list()
last_rank = list()
last_score = list()
last_gpa_rank = list()
for name in stu_class['姓名']: # 要追加而不是覆盖
try:
last_class.append(dic[name][0])
last_pe.append(dic[name][1])
last_gpa.append(dic[name][2])
last_rank.append(dic[name][3])
last_score.append(dic[name][4])
last_gpa_rank.append(dic[name][5])
except KeyError: # 部分名字没有对应的数据,那么try、except后,无数据的名字就会跳过了
pass
last = pd.DataFrame()
last['姓名'] = list(dic.keys())
last['班级'] = last_class
last['体测'] = last_pe
last['绩点'] = last_gpa
last['绩点排名'] = last_gpa_rank
last['综测得分'] = last_score
last['综测排名'] = last_rank
result = pd.DataFrame(last, columns=['姓名', '班级', '体测', '绩点', '绩点排名', '综测得分', '综测排名'])
result.to_csv('最终文件.csv', index=False, encoding='gbk')
















