美文网首页
pandas 文件读写与join数据

pandas 文件读写与join数据

作者: 衣介书生 | 来源:发表于2020-02-29 16:54 被阅读0次

    read_csv

    read_csv 用于从文件中读取数据,常用的几个参数如下。

    参数 描述
    path 路径
    sep 分隔符
    names 用于结果的列名列表,当header=None时
    header 用作列名的行号,默认为0
    如果没有header行就应该设置为None
    index_col 用作行索引的列编号或列名
    可以是单个名称/数字
    或由多个名称/数字组成的列表(层次化索引)
    skiprows 需要忽略的行数,或需要跳过的行号列表
    nrows 需要读取的行数(从文件开始处算起)
    skip_footer 需要忽略的行数(从文件末尾处算起)
    thousands 千位分隔符

    to_csv 和 to_excel

    import sys
    import numpy as np
    import pandas as pd
    
    df1 = pd.DataFrame({'A': range(3),
                        'B': list("abc"),
                        'C': ['red',np.NaN,'yellow'],
                        'D': [1.1, 2.2, 6.6]
                     })
    print(df1)
    print('='*100)
    df1.to_csv(sys.stdout)  # 默认分隔符为 ','
    print('='*100)
    df1.to_csv(sys.stdout, sep=',')  # 指定分隔符为 ','
    print('='*100)
    df1.to_csv(sys.stdout, na_rep='NULL')  # 替换空值
    print('='*100)
    df1.to_csv(sys.stdout, na_rep='NULL', header=None)  # 不写入列名
    print('='*100)
    df1.to_csv(sys.stdout, na_rep='NULL', header=None, index=False)  # 不写入索引
    print('='*100)
    df1.to_csv(sys.stdout, na_rep='NULL', header=None, index=False, columns=['D', 'A', 'B'])  # 保留部分列且重新排序
    print('='*100)
    df1.to_csv(sys.stdout, na_rep='NULL', header=None, index=False, columns=['A', 'B', 'D'], float_format='%.2f')  # 浮点数保留两位小数
    

    执行结果:

      A  B       C    D
    0  0  a     red  1.1
    1  1  b     NaN  2.2
    2  2  c  yellow  6.6
    ====================================================================================================
    ,A,B,C,D
    0,0,a,red,1.1
    1,1,b,,2.2
    2,2,c,yellow,6.6
    ====================================================================================================
    ,A,B,C,D
    0,0,a,red,1.1
    1,1,b,,2.2
    2,2,c,yellow,6.6
    ====================================================================================================
    ,A,B,C,D
    0,0,a,red,1.1
    1,1,b,NULL,2.2
    2,2,c,yellow,6.6
    ====================================================================================================
    0,0,a,red,1.1
    1,1,b,NULL,2.2
    2,2,c,yellow,6.6
    ====================================================================================================
    0,a,red,1.1
    1,b,NULL,2.2
    2,c,yellow,6.6
    ====================================================================================================
    0,a,1.1
    1,b,2.2
    2,c,6.6
    ====================================================================================================
    0,a,1.10
    1,b,2.20
    2,c,6.60
    

    与excel相关的几个函数:

    # 与 excel 相关的几个函数
    df1.to_excel('df1.xlsx')  # 写出到 excel
    df1.to_excel('df1.xlsx', sheet_name='df1')  # 指定 sheetname
    # 写出到 excel 的多个 sheetname
    work=pd.ExcelWriter('df2.xlsx')
    df1.to_excel(work,sheet_name='df2')
    df1['A'].to_excel(work,sheet_name='df3')
    

    merge

    类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来。该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面。

    merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)
    
    • left和right:两个不同的DataFrame

    • how: 连接方式,有inner、left、right、outer,默认为inner

    • on: 指的是用于连接的列索引名称,必须存在于左右两个DataFrame中,如果没有指定且其他参数也没有指定,则以两个DataFrame列名交集作为连接键

    • left_on: 左侧DataFrame中用于连接键的列名,这个参数左右列名不同但代表的含义相同时非常的有用

    • right_on: 右侧DataFrame中用于连接键的列名

    • suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为('_x', '_y')

    相关文章

      网友评论

          本文标题:pandas 文件读写与join数据

          本文链接:https://www.haomeiwen.com/subject/srouhhtx.html