Python 实现多个列表存储为CSV或者excel

功能:

可实现多个列表合并后存储为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')
 

猜你喜欢

转载自blog.csdn.net/jac_chao/article/details/115159468
今日推荐