美文网首页
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