我上上篇博客说过:Pandas数据结构为DataFrame,里面可以同时是int、float、object(string类型时)、datatime、bool数据类型。而构成DataFrame结构的每一列或每一行是Series结构,令人吃惊的是Series里面的结构是ndarray (numpy中的) 结构
Pandas之Series常用操作方法1
import pandas as pd
fandango = pd.read_csv('fandango_score_comparison.csv') #读文件
series_film = fandango['FILM'] #查找该文件的名为"FILM"的列
print(type(series_film)) #看结果打印类型是Series类型
print(series_film[0:5])
series_rt = fandango['RottenTomatoes']
print(series_rt[0:5])
结果是:
<class 'pandas.core.series.Series'> #可以看到类型是Series类型
0 Avengers: Age of Ultron (2015)
1 Cinderella (2015)
2 Ant-Man (2015)
3 Do You Believe? (2015)
4 Hot Tub Time Machine 2 (2015) #打印了"FILM"列的第0到4的数据
Name: FILM, dtype: object
0 74
1 85
2 80
3 18
4 14 #打印了"RottenTomatoes"列的第0到4的数据
Name: RottenTomatoes, dtype: int64
Pandas之Series常用操作方法2
from pandas import Series
film_names = series_film.values #查看该Series的value
print(type(film_names)) #从结果看出:Series的value是ndarray结构
rt_scores = series_rt.values
series_custom = Series(rt_scores, index=film_names) #以电影名为索引构造Series,前一个参数是电影评分
print(series_custom[['Minions (2015)','Leviathan (2014)']]) #以电影名为索引搜索其评分
print(series_custom[5:10]) #打印此Series中第5到10的数据
结果是:
<class 'numpy.ndarray'> #可看出,Series里面的结构是ndarray结构
Minions (2015) 54
Leviathan (2014) 99 #以电影名为索引搜索到的其评分
dtype: int64
The Water Diviner (2015) 63
Irrational Man (2015) 42
Top Five (2014) 86
Shaun the Sheep Movie (2015) 99
Love & Mercy (2015) 89 #此Series中第5到10的数据
-----对Series排序
series_custom.sort_index() #按索引进行排序
series_custom.sort_value() #按值进行排序
-----设置索引
fandango_films = fandango.set_index('FILM', drop=False) #将某一列设置成索引,此时就有2个索引了,另一个是默认的,fandango是之前读取文件获得的对象
-----设置索引之后,可以用设置索引的列的元素进行数据查看(切片方式)
fandango_films["设置索引的列的元素1":"设置索引的列的元素2"] #查看元素1到元素2之间的所有元素
-----自定义函数方式对Series操作
a = b[["列名1", "列名2"]] #a和b都是Series
a.apply(lambda x: np.std(x), axis=1) #通过列1和列2对a对象求标准差
需要fandango_score_comparison.csv文件把代码走一遍的,评论联系我