Pandas 教程——筛选让你动心的电影(2)

浏览: 1678

上一节对 Pandas 整体有了一个简单的认识,接下来我们看一下 Pandas 的数据结构到底是什么,先使用 type( ) 查看一下变量类型

import pandas as pd

movie_pd = pd.read_csv('douban_movie.csv', header = 0, sep = '\t')
print type(movie_pd)

输出结果如下:

<class 'pandas.core.frame.DataFrame'>

可见,Pandas 的基本数据结构是 DataFrame, 怎么理解这个 DataFrame 呢?

其实 DataFrame 类似于 Excel 中的表,表有行标题和列标题,比如下面这个表:

test.jpg


对应的 DataFrame 就是:

      movie_count    total_vote     average_score
BJ 126 1762312 8.6
SH 138 2083123 8.3
TJ 95 891212 7.9
CQ 88 762310 8.1

是不是很像,在 Pandas 中,列名相当于列标题 movie_count、total_vote、average_score,而行标题 BJ、SH、TJ、CQ 就相当于索引。


那么如何创建一个新的 DataFrame 呢?使用 pd.DataFrame( ) 方法即可,具体有两种方式:

  • 按列创建

比如说创建一个只有 电影类型 category 和 电影评分 score 两列的 DataFrame,直接扔进去一个字典,字典的键将作为列名,对应键的值将作为列值。

temp_dict =  {
'score': [ 8.9, 8.2, 9.3 ],
'category': ['悬疑', '动作', '爱情']
}
temp_pd = pd.DataFrame(temp_dict)
print temp_pd

输出结果如下:

    category   score
0 悬疑 8.9
1 动作 8.2
2 爱情 9.3
  • 按行创建

上述 DataFrame 也可以使用按行创建的思路生成,但实际中使用的并不多,创建时需要传入一个列表进去。

row1 = [8.9, '悬疑' ]
row2 = [8.2, '动作']
row3 = [9.3, '爱情' ]
temp_pd = pd.DataFrame([ row1, row2, row3 ], columns = ['score', 'category'])

不同的是,按行创建一般需要指定列名,使用 columns = ['score', 'category'] 来分别对列重命名,否则默认的列名是以数字命 0、1 命名的,使用起来并不直观。


新创建的 DataFrame,或者从文件读入的 DataFrame,默认的索引都是从 0 ~ N-1 的数字,其中 N 为 DataFrame 的长度,可以使用 len( ) 来获取。

print len(temp_pd)
print temp_pd.index
temp_pd.index = ['movie_1', 'movie_2', 'movie_3']
print temp_pd.columns
temp_pd.columns = ['movie_score', 'movie_category']
print temp_pd
print temp_pd.values

数据结果如下:

3
RangeIndex(start=0, stop=3, step=1)
Index([u'category', u'score'], dtype='object')
movie_score movie_category
movie_1 悬疑 8.9
movie_2 动作 8.2
movie_3 爱情 9.3
[['\xe6\x82\xac\xe7\x96\x91' 8.9]
['\xe5\x8a\xa8\xe4\xbd\x9c' 8.2]
['\xe7\x88\xb1\xe6\x83\x85' 9.3]]

index 可以获取 DataFrame 的索引,更改之前是 0、1、2,之后变为了movie_1、movie_2 、movie_3 。

columns 可以获取 DataFrame 的列名,更改之前是 score 、category,之后变为了movie_score、movie_category。

values 则可以获取 DataFrame 的值,每一行各个列的值都是一个列表,所有的行整体又组成一个列表,有点类似于二维数组。

同时也可以通过赋值的方式更改 DataFrame 的索引 index、列名 columns


划重点

  • DataFrame 类似于 Excel 中的表,有行和列
  • index 索引、columns 列名 、values 值
  • pd.DataFrame( ) 创建一个新的 DataFrame,可以传入字典或列表
推荐 1
本文由 数分 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册