功能:
可实现多个列表合并后存储为csv或excel,按行按列存储都可!
不多bb直接上代码,已封装成函数,直接调用即可!
假设我们的数据为多个列表构成,这在现实情况中比较常见
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [7, 8, 9]
在调用该函数时我们需要把这些列表封装成一个字典:字典中key为期望列表在csv/excel中期望显示的列名,value即为需要存储的列表
Data = {'one':list1, 'two':list2, 'three':list3}
函数调用(按列存储):
Save_to_Csv(data = Data, file_name = 'demo', Save_format = 'csv',Save_type = 'col')
显示效果:
函数调用(按行存储):
Save_to_Csv(data = Data, file_name = 'demo', Save_format = 'csv',Save_type = 'row')
显示效果:
代码:
def Save_to_Csv(data, file_name, Save_format = 'csv', Save_type = 'col'):
# data
# 输入为一个字典,格式: { '列名称': 数据,....}
# 列名即为CSV中数据对应的列名, 数据为一个列表
# file_name 存储文件的名字
# Save_format 为存储类型, 默认csv格式, 可改为 excel
# Save_type 存储类型 默认按列存储, 否则按行存储
# 默认存储在当前路径下
import pandas as pd
import numpy as np
Name = []
times = 0
if Save_type == 'col':
for name, List in data.items():
Name.append(name)
if times == 0:
Data = np.array(List).reshape(-1,1)
else:
Data = np.hstack((Data, np.array(List).reshape(-1,1)))
times += 1
Pd_data = pd.DataFrame(columns=Name, data=Data)
else:
for name, List in data.items():
Name.append(name)
if times == 0:
Data = np.array(List)
else:
Data = np.vstack((Data, np.array(List)))
times += 1
Pd_data = pd.DataFrame(index=Name, data=Data)
if Save_format == 'csv':
Pd_data.to_csv('./'+ file_name +'.csv',encoding='utf-8')
else:
Pd_data.to_excel('./'+ file_name +'.xls',encoding='utf-8')