QQ交流群: 807041986
最新更新时间: 2020-12-6
注:关于pandas的相关问题,若本文未涉及可在下方留言告诉我,我会在文章中进行补充的
0 安装
pip方式
pip install pandas
Anaconda
conda install pandas
1 文件
1.1 文件读写模式
以CSV文件的读取为例,代码如下
import pandas as pd
#设置只读模式
file_path = os.path.join("test.csv")
data = pd.read_csv(open(file_path,'r',encoding='utf-8'),sep='|')
mode | 描述 |
---|---|
"r" | 打开,只读。文件的指针将会放在文件的开头。这是默认模式 ; |
"w" | 打开,只写。如果该文件已存在则将其覆盖 。如果该文件不存在,创建新文件; |
"a" | 打开,指向文件尾,在已存在文件中追加 ; |
"rb" | 打开一个==二进制文件==,只读; |
"wb" | 打开一个==二进制文件==,只写。如果该文件已存在则将其覆盖 。如果该文件不存在,创建新文件; |
"ab" | 打开一个==二进制文件==,进行追加 ; |
"r+" | 以读/写方式打开一个已存在的文件; |
"w+" | 以读/写方式建立一个新的文本文件。如果该文件已存在则将其覆盖 。如果该文件不存在,创建新文件 ; |
"a+" | 以读/写方式打开一个文件文件进行追加 ; |
"rb+" | 以读/写方式打开一个==二进制文件==; |
"wb+" | 以读/写方式建立一个新的==二进制文件==。如果该文件已存在则将其覆盖 。如果该文件不存在,创建新文件 |
"ab+" | 以读/写方式打开一个==二进制文件==进行追加 ; |
1.2 读取CSV文件
import pandas as pd
import os
file_path = os.path.join("test.csv")
data = pd.read_csv(open(file_path,'r',encoding='utf-8'),sep='|')
#定义一个列表来获取name列中的内容
name_list = []
for column, row in data.iterrows():
name_list.append(row['name'])
print(row['name'])
1.3 读取excel文件
excel文件的读取都可以用以下函数来实现
pd.read_excel(io, sheetname=0,header=0,skiprows=None,index_col=None,names=None,
arse_cols=None,date_parser=None,na_values=None,thousands=None,
convert_float=True,has_index_names=None,converters=None,dtype=None,
true_values=None,false_values=None,engine=None,squeeze=False,**kwds)
参数详解:
io
:excel文件路径;sheetname
:默认是sheetname为0,返回多表使用sheetname=[0,1],若sheetname=None是返回全表 。注意:int/string返回的是dataframe,而none和list返回的是dict of dataframe。header
:指定作为列名的行,默认0,即取第一行,数据为列名行以下的数据;若数据不含列名,则设定 header = None;skiprows
:省略指定行数的数据,比如省略第三行,skiprows=2
;skip_footer
:省略从尾部数的行数据index_col
:指定列为索引列;names
:指定列的名字,传入一个list数据
1.4 读取txt文件
这里使用read_table()
函数。
import pandas as pd
data=pd.read_table('../data/datingTestSet2.txt',sep='\t',header=None)
data.head()
"""
输出:
0 1 2 3
0 40920 8.326976 0.953952 3
1 14488 7.153469 1.673904 2
2 26052 1.441871 0.805124 1
3 75136 13.147394 0.428964 1
4 38344 1.669788 0.134296 1
"""
函数原型:
pandas.read_table(filepath_or_buffer,sep='\t',delimiter=None,
header='infer',names=N