python:pandas解析csv

前提:pip install pandas

 

总结:

用DataFrame接收二维数组,用Series接收一维数组。

DataFrame[列名] = Series列的内容。

 

 

 1 import pandas as pd
 2 
 3 
 4 # df = pd.DataFrame(pandasObj):将pandasObj转为二维数组
 5 # df = pd.DataFrame([[],[]],columns=[],index=[]):将二维数组转为DataFrame格式
 6 def readCsv(src):
 7     t = pd.read_csv(src)       # 获取pandas对象
 8     df = pd.DataFrame(t)        # 通过pandas的DataFrame()将DataFrame格式转为二维数组
 9     series_time = df['time']    # 通过df['列名']得到该列的一维数组
10     val_temp = series_time[10]      # 获取time列第10条数据
11 
12 def writeCsv(dst):
13     _matrix = []        # 定义一个数组(准备作为二维数组)
14     _head = ['name','time','age']       # 定义表头字段
15     for i in range(0,10):
16         _l = ['william','2020-02-02 19:01:01',12]       # 定义每行的信息
17         _matrix.append(_l)              # 将每行添加至二维数组里
18     df = pd.DataFrame(_matrix,columns=_head)        # 通过pandas的DataFrame()将二维数组转为dataFrame格式
19     df.to_csv(dst)          # 将DataFrame格式的数据写入csv

 

class PandasUse:

    @staticmethod
    def write_csv():
        _path,_file_name = "xxx","file.csv"
        _dst = os.path.join(_path+_file_name)

        # 以二维数组接收要写的数据
        _data = []
        while True:
            _data.append(['','',''])

        # 待写入文件的表头
        _head = ['name','age','sex']

        # 将二维数组转换为DataFrame对象
        df = pd.DataFrame(_data,columns=_head)

        # 将DataFrame对象通过pandas写入csv,并去除左侧第一列默认自增的index
        df.to_csv(_dst,index=False)


    # pandas读文件,返回DataFrame对象
    def read_file(src:str):
        # 从文件中读取数据,以DataFrame对象接收
        _df = pd.read_csv(src)

    # pandas读大文件,返回DataFrame对象。结合yield,可以读取超出本机内存大小的文件(如4G内存的电脑读取8G大小的文件)
    # _df = read_large_file("xxx.csv",chunksize=10),for _ in _df: print(_)
    def read_large_file(src:str, chunksize:int)
        _read = pd.read_csv(src, sep=',',chunksize=chunksize)
        while True:
            try:
                yield _read.get_chunk()
            except StopIteration:
                break

 

posted @ 2024-05-28 19:20  _titleInfo  阅读(6)  评论(0编辑  收藏  举报
//雪花飘落效果