pandas 文件读写与join数据

2020-02-29  本文已影响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)
上一篇 下一篇

猜你喜欢

热点阅读