提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一维列表(数组)和二维列表(数组)存入csv/excel/txt文件的方法,其实大同小异。只需要稍微修改一下就可以。


一、多个一维列表存入csv/txt文件

定义存储数据的函数,此时data是字典格式的,方便下次直接调用。

def Save_to_Csv(data, file_name, Save_format = 'csv', Save_type = 'col'):
    # data
    # 输入为一个字典,格式: { '列名称': 数据,....} 
    # 列名即为CSV中数据对应的列名, 数据为一个列表
    
    # file_name 存储文件的名字
    # Save_format 为存储类型, 默认csv格式, 可改为 excel
    # Save_type 存储类型 默认按列存储, 否则按行存储
    
    # 默认存储在当前路径下,可根据自己需要进行更改

    
    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')

a = [1,2,3]
b = [3,4,5]
c = [6,7,8]
number = {'a':a,'b':b, 'c':c}
Save_to_Csv(data = number, file_name = 'example', Save_format = 'csv',Save_type = 'col')

存入的数据不想显示列名:

csvfile=open(r'D:\example.csv',"w",newline="")
writer=csv.writer(csvfile)
writer.writerows(zip(a,b,c))
csvfile.close()

二、多个一维数组存入csv/txt文件

利用pandas库

代码如下(示例):

import pandas as pd
import numpy as np

a = np.array(1,2,3)
b = np.array(3,4,5)
c = np.array(6,7,8)
data  = pd.DataFrame({'a':a, 'b':b,'c':c})
data.to_csv('./example.csv',index=None)

在原有的文件上再添加列:

import pandas as pd
import numpy as np

f = pd.read_csv('./example.csv',sep=',',header=None)

d = np.array(2,3,4)
e = np.array(4,5,6)

f['d'] = d
f['e'] = e
f.to_csv('./example.csv', index = False)

注意:当在原有文件的基础上添加列时,不需要使用dataframe,否则会把原始数据覆盖掉。


总结

本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐