学习python pandas库的最佳方法是通过解决一个个问题学习
How to read a tabular data file into pandas
将表格型数据文件(excel, csv…)读入pandas十分简单
因为大家没有现成的数据文件,我们用一个URL代替,没错,pandas.read_table
可以传入一个URL, 确认你可以访问到这个地址,大陆需要自备梯子1
2import pandas as pd
pd.read_table('http://bit.ly/chiporders')
read_table默认数据是用tab分割的,如果数据使用其它符号分割(比如’|’)1
2
3import pandas as pd
user_headers = ['use_id','age','gender','occupation','zip_code']
pd.read_table('http://bit.ly/movieusers', sep='|', header=None, names=user_headers)
在上面这个代码片段中我们从http://bit.ly/movieusers
这个URL导入了数据,但是数据是用’|’分割的,因此我们要声明seperator:sep='|'
, header=None, names=user_headers
则告诉python第一行的数据不是header,将其忽略并换上自定义的header user_headers
read_tables
有大量的控制参数,可以参考官网的定义
How to select a pandas series from a DataFrame
实验代码:这个URL记录了历史上目击UFO的相关数据1
2
3
4
5
6
7
8
9
10
11import pandas as pd
ufo = pd.read_csv('http://bit.ly/uforeports')
type(ufo)
ufo.head()
ufo['City']
type(ufo['City'])
ufo.City
ufo['Location'] = ufo.City + ', ' + ufo.State
read_csv
函数与read_table
几乎一样,唯一一点不同的是read_csv
使用,
作为默认seperatorufo.head()
显示ufo数据的前5行
pandas会自动将frame的series转换成frame的方法,因此ufo['City'] == ufo.City
,但是方法有一些局限性ufo['Location'] = ufo.City + ', ' + ufo.State
: 创建一个新的series location, 是原来两个series的组合