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')
网友评论