目录
  • 前言
  • 1. 操作步骤
    • 1.1 安装pandas
    • 1.2 拆分大文件
  • 2. 再多了解一点儿
    • 2.1 pandas读取csv文件后,返回的是什么类型?
    • 2.2 如何从DataFrame中读取某一行呢?
    • 2.3 如何从DataFrame读取多行呢?
    • 2.4 如何从DataFrame中读取某一列呢?
    • 2.5 如何用pandas读写CSV文件?
    • 2.6 关于pandas
  • 3. 小结

    前言

    本文介绍如何利用pandas对超大CSV文件进行快速拆分。

    1. 操作步骤

    1.1 安装pandas

    pip install pandas
    

    1.2 拆分大文件

    import pandas as pd
    
    # 读取csv文件
    df = pd.read_csv("../super_big.csv")
    
    # 获取文件总行数
    row_num = len(df)
    
    # 确定每个小文件要包含的数据量
    step = 400
    
    for start in range(0, row_num, step):
        stop = start + step
        filename = "./small_{}-{}.csv".format(start, stop)
        d = df[start: stop]
        print("Saving file : " + filename + ", data size : " + str(len(d)))
        d.to_csv(fname, index=None)
    
    # 输出如下
    # Saving file : ./small_0-500.csv, data size : 500
    # Saving file : ./small_500-1000.csv, data size : 500
    

    代码就这么简单。

    2. 再多了解一点儿

    2.1 pandas读取csv文件后,返回的是什么类型?

    import pandas
    df = pandas.read_csv('./super_big.csv')
    type(df)
    
    <class 'pandas.core.frame.DataFrame'>
    

    2.2 如何从DataFrame中读取某一行呢?

    # 返回第一行
    print(df.loc[0])
    # 返回第二行
    print(df.loc[1])
    

    2.3 如何从DataFrame读取多行呢?

     d = df[start: stop]
    

    2.4 如何从DataFrame中读取某一列呢?

    data = {
        "name": ["peter", "rose", "joe"],
        "career": ["teacher", "engineer", "doctor"]
    }
    
    df = pd.DataFrame(data)
    print(df["name"])
    
    #0    peter
    #1     rose
    #2      joe
    #Name: name, dtype: object

    2.5 如何用pandas读写CSV文件?

    df = pd.read_csv("YOUT_CSV_FILE.csv")
    
    df.to_csv(fname, index=None)
    

    注意:index默认是True,意思是保存行索引,这时候需要一个例子。

    data = {
        "name": ["peter", "rose", "joe"],
        "career": ["teacher", "engineer", "doctor"]
    }
    
    df = pd.DataFrame(data)
    df.to_csv("a.csv")
    
    # 文件内容如下,注意每行的开头自动添加了行索引,从0开始递增
    ,name,career
    0,peter,teacher
    1,rose,engineer
    2,joe,doctor
    

    2.6 关于pandas

    pandas是一款快速、强大、灵活且易于使用的开源数据分析和操作工具,建立在Python编程语言之上。用了都说好。

    3. 小结

    其实pandas处理csv文件的方法还有很多,功能非常强大,仅仅是数据切分,就有很多方法,有需要的时候,可以去看看文档。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。