Pythonは、CSVまたはExcelとして保存された複数のリストを実装します

特徴:

複数のリストをマージしてcsvまたはExcelとして保存でき、行と列に保存できます。

コードに直接bbはあまりなく、関数にカプセル化されており、直接呼び出すことができます。

データが複数のリストで構成されていると仮定します。これは、実際の状況でより一般的です。

list1 = [1,2,3]
list2 = [4,5,6]
list3 = [7, 8, 9]

この関数を呼び出すときは、これらのリストをディクショナリにカプセル化する必要があります。ディクショナリのキーは、期待されるリストがcsv / excelで表示されると予想される列名であり、値は保存する必要のあるリストです。

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