上一篇文章中的numPy库是一个关于矩阵运算的库,而这个Pandas库是一个数据处理的库。
一般的,我们在拿到一堆数据时,这些数据并不一定是完整的、无错误的,所以我们需要对数据进行预处理,让它能够更好地满足建模的需求。其实Pandas在做预处理时,是基于numPy,如果numPy需要3、4行能解决的事,也许Pandas一个函数就能解决。
这里有一些Pandas库的基本函数:https://blog.csdn.net/claroja/article/details/65449494
读文件
Pandas本身就是用来读取文件数据的,那么现在有一个文件,我将它读进来。
import pandas as pd
food_info=pd.read_csv("food_info.csv") #读文件
print(type(food_info))
print("-----------------------")
print(food_info.dtypes)
运行结果:
从上图我们可以知道,numPy的数据类型是ndarry,而pandas是一个dataframe。并且,在pandas中,一个字符型数据,它会把它表示成“object”类型,object类型相当于string类型,所以不用太过纠结。如下图:
显示部分数据
可以使用.head()或.tail()方法读取n行数据,而且会自动给每行数据进行标号。
food_info=pd.read_csv("food_info.csv") #读文件
print("默认显示前5行:\n",food_info.head())
print("-----------------------")
print("显示前3行:\n",food_info.head(3))
print("-----------------------")
print("显示后3行:\n",food_info.tail(3))
运行结果:
取出所有的列名
food_info=pd.read_csv("food_info.csv") #读文件
print(food_info.columns)
运行结果:
查看维度
food_info=pd.read_csv("food_info.csv") #读文件
print(food_info.shape)
运行结果:
这说明了当前的样本有8618行,36列。
索引号取数据
pandas不像numPy中那样直接food_info[0]就可以取数据,在pandas中需要使用food_info.loc[0]来取数据。“0”表示第一行数据(不含列名)或者是第一条数据,它会显示列名。
food_info=pd.read_csv("food_info.csv") #读文件
print(food_info.loc[0]) #取数据第1行
运行结果:
我们来看看是不是取得第一条数据。在csv文件中查看:
可以看到,确实是取出来第一条数据,每条数据对应的列名也取了出来。
索引号切片取数据
food_info=pd.read_csv("food_info.csv") #读文件
print(food_info.loc[3:4]) #取数据第4-5行,也就是索引号3-4
运行结果:
当然,也可以单独取某些值:
food_info=pd.read_csv("food_info.csv") #读文件
#print(food_info.loc[3:4]) #取数据第4-5行,也就是索引号3-4
print("-----------------------------------")
print(food_info.loc[[2,5,8]]) #取数据第3,6,9行,也就是索引号2,5,8
运行结果:
取某一列的数据
一般情况下,pandas会默认为第一行是列名。所以,我们可以通过输入列名名称来获取该列数据。
food_info=pd.read_csv("food_info.csv") #读文件
name_row=food_info["NDB_No"] #列的列名
print(name_row)
运行结果:
我们来看看csv文件:
可以看到,确实已经被读取出来了…
取某n列的数据
当然,也可以取某n列的数据。
这里我取前两列的数据:
food_info=pd.read_csv("food_info.csv") #读文件
data_row=food_info[["NDB_No","Shrt_Desc"]] #列的列名
print(data_row)
运行结果:
我们来看看csv文件的前两列:
可以看到,前两列数据确实已经被取了出来,并且pandas还给每行数据标了索引号。
特殊数据列的数据
有这么一个情况,在我的csv文件中有这些列名:
它们是以"g"或"mg"为单位的列数据。现在我想要取出以“g”为单位的所有数据列,怎么做呢?
food_info=pd.read_csv("food_info.csv") #读文件
col_names=food_info.columns.tolist() #取数据的每一列的列名,把它放进List数组中
print(col_names)
print("-------------------------------")
g_col_names=[]
for i in col_names:
if i.endswith("(g)"): #以"(g)"结尾的列名
g_col_names.append(i) #追加到g_col_names数组中
print(g_col_names)
print("-------------------------------")
head_data_3=food_info[g_col_names].head(3)
print(head_data_3) #只打印数据前三行
运行结果:
数据换算
我的csv文件中有这么一列(它是以“mg”结尾):
我现在要把它换算成以“g”结尾的。我们知道,1000mg=1g,所以,这相当于该列的每行数据都要除以1000。
代码如下:
food_info=pd.read_csv("food_info.csv") #读文件
mg_convertto_g=food_info["Calcium_(mg)"]/1000
print(mg_convertto_g)
运行结果:
对比csv中的数据,该列每行数据都被除以了1000。
n列对应加减乘除运算及增加一列操作
pandas中,可以直接对那两行数据进行加减乘除,也可以直接增加新的一列数据。当然了,前提是两列的维度一样。
food_info=pd.read_csv("food_info.csv") #读文件
add_data=food_info["Ash_(g)"]+food_info["Carbohydrt_(g)"] #两列相加
print(add_data.head(3)) #显示前三行数据
print("----------------------------------------")
print("初始的维度:\n",food_info.shape)
mg_convertto_g=food_info["Calcium_(mg)"]/1000 #把这列所有数据除以1000
food_info["mg_convertto_g"]=mg_convertto_g #增加新的一列数据
print("现在的维度:\n",food_info.shape)
运行结果:
看看csv文件:
这两列的前三行数据相加确实一样。而新加了一列之后的维度也有所改变。
某列最大值查找及归一化
numPy中我们可以进行最大值最小值查找,而在pandas中,唐可以进行最大值或最小值查找。
同时,我们还对该列进行归一化处理:每行数据/最大数据
food_info=pd.read_csv("food_info.csv") #读文件
Max_data5=food_info["Sugar_Tot_(g)"].head(5).max() #取前5行最大值
print("前5行最大值:\n",Max_data5)
print("-------------------------------------------------")
Max_data_all=food_info["Sugar_Tot_(g)"].max() #取该列所有数据中的最大值
normalize_data_all=food_info["Sugar_Tot_(g)"]/Max_data_all #归一化处理
print(normalize_data_all)
运行结果:
我在这里取了该列前5行中的最大值,是为了好验证,查看csv文件:
可以看到,前5行最大值确实是0.51…
注意:NaN在pandas中被认为是缺失值或者打印不出来的值。
缺失值查找与统计
接下来我主要用泰坦尼克号人员获救预测”的数据集:titanic_train.csv来进行数据处理操作。当然了,这是一个真实的数据集…
(如果该数据集中某一列如果缺失值较多,那么这一列就不能作为特征列进行数据分析与处理。)
titanic_train.csv,它的数据在jupyter notebook中显示是这样的:
这里记录一下pyCharm与jupyter notebook的区别:
对于一个数据集来说,最直观的是pyCharm输出打印时会有缩减,对于横向数据较多的部分,会用省略号来隐藏。而notebook就不同了,它显示的数据较多,如上图所示。而pyCharm则不会,同样的代码,在pyCharm中的显示结果为:
甚至在notebook中有时候不需要写print(),写了print()反而会有点问题。所以,为了更好地显示数据,这一段代码,我在jupyter notebook中打印:
import pandas as pd
import numpy as np
titanic_data=pd.read_csv("titanic_train.csv") #读文件
titanic_data.head(10)
显示结果:
通过上图可以看到,“Age”那一列有缺失值(当然其余列也有),这里用这一列查找和统计缺失值。所谓的缺失值,在pandas中以NaN表示,但在csv文件中表示的是空字符。
titanic_data=pd.read_csv("titanic_train.csv") #读文件
#print(titanic_data.head())
age=titanic_data["Age"]
age_null=pd.isnull(age) #使用pandas中的空判断函数判断这一列,如果为空,会返回True
print(age_null)
#统计该列的缺失值个数
count_null=len(age[age_null]) #查找的True可以作为索引
print("缺失值个数:\n",count_null)
求均值(在缺失值存在的条件下)
接上面,如果缺失值存在,怎么去求得该列的平均年龄呢?
1、当缺失值存在且不处理的情况下:
titanic_data=pd.read_csv("titanic_train.csv") #读文件
avg=sum(titanic_data["Age"])/len(titanic_data["Age"])
print("平均年龄:\n",avg)
运行结果:
当有缺失值存在时,结果根本没法计算出来。
2、当缺失值存在且处理的情况下:
titanic_data=pd.read_csv("titanic_train.csv") #读文件
age_null=pd.isnull(titanic_data["Age"]) #使用pandas中的空判断函数判断这一列,如果为空,会返回True
good_age=titanic_data["Age"][age_null==False] #查找出这一列的缺失值为False的数据
avg=sum(good_age)/len(good_age)
print("平均年龄:\n",avg)
运行结果:
3、使用内置函数处理缺失值及求均值:
titanic_data=pd.read_csv("titanic_train.csv") #读文件
good_age=titanic_data["Age"].mean() #均值,会自动忽略缺失值
print("平均年龄:\n",good_age)
运行结果:
不过以上的数据预处理去掉缺失值的方法并不是很好,通常会使用均值、中位数等来替换缺失值。
这里使用一个叫做fillNa()的函数进行替换:
titanic_data.fillna(good_age,inplace=True)#把NaN用平均值填充
print(titanic_data["Age"].head(6))
初始结果:
运行结果:
求对应舱位的均值
“Pclass”表示船上的舱位,1,2,3分别表示“一等舱”、“二等舱”、“三等舱”,“Fare”表示每个舱位对应的价格。
现在求每个舱位对应的均值:
titanic_data=pd.read_csv("titanic_train.csv") #读文件
Pclass_Tick=titanic_data.pivot_table(index="Pclass",values="Fare",aggfunc=np.mean)
'''
.pivot_table(透视表)方法里面可以填写三个值,index表示统计的数据以谁为基准,
values表示关系,相当于x与y之间的关系。aggfunc是一个方法,求它们对应的均值,当然,也可以不写,默认为求均值
'''
print(Pclass_Tick)
运行结果:
当然,也可以多个数据进行操作。在csv文件中,“Embarked”表示人员上船的码头,“Fare”表示船票价格,“Survived”表示是否是幸存者。
titanic_data=pd.read_csv("titanic_train.csv") #读文件
one_both=titanic_data.pivot_table(index="Embarked",values=["Fare","Survived"],aggfunc=np.sum)
print(one_both)
去掉NaN值
之前我们可以替换NaN的值,现在我们可以去掉NaN的值,为了显示清楚,这一段代码在notebook中运行。
titanic_data=pd.read_csv("titanic_train.csv") #读文件
td=titanic_data.dropna(axis=0,subset=["Age","Survived"])
td.head(8)
初始结果:
上图中,可以看到索引标号为5的这一行有NaN。
运行结果:
可以看到,索引标号为6的这一行因为有NaN值,所以被去掉了。
重新排序
以某一列进行重新排序:
titanic_data=pd.read_csv("titanic_train.csv") #读文件
new_titanic_date=titanic_data.sort_values("Age",ascending=False) #以年龄进行降序排序
print(new_titanic_date)
运行结果:
可以看到,表格确实根据年龄降序进行了重新排序,但是,索引却没有发生变化,我想让索引也重新标号,以0,1,2,…这样开始。这里就要用到reset_index()函数了。
titanic_data=pd.read_csv("titanic_train.csv") #读文件
new_titanic_date=titanic_data.sort_values("Age",ascending=False) #以年龄进行降序排序
reset_index=new_titanic_date.reset_index(drop=True) #drop=True表示原来的不要了,直接新建一个
print(reset_index.loc[0:9]) #切片取数据也可以
上面两个图作比较,只有索引发生了改变。
自定义函数查找缺失值
titanic_data=pd.read_csv("titanic_train.csv") #读文件
def NaN_search(column):
null_bool_data=pd.isnull(column)
NaN_data=column[null_bool_data]
return len(NaN_data)
count_NaN=titanic_data.apply(NaN_search) #调用该函数,统计NaN个数
print(count_NaN)
运行结果:
Series结构
pandas中读取的数据结构式DataFrame,也就是一个矩阵,而Series也是一个数据结构,它表示矩阵中的一行或是一列。
现在我有这么一张数据集:
它是一个国外电影的评分数据,具体什么意思不用管它,我们也不熟。
Series数据结构
我们现在来看一看Series是不是DataFrame中的一行或一列:
fandango=pd.read_csv("fandango_score_comparison.csv")
film=fandango["FILM"]
print(type(film))
运行结果:
可以看到,我们读取了文件里的一列数据,打印出来的数据结构是Series,所以,Series是DataFrame中的一行或一列。
那么,现在,我进行如下操作,把“FILM”中的每一个值取出来:
fandango=pd.read_csv("fandango_score_comparison.csv")
film=fandango["FILM"]
print(type(film))
film_names=film.values #取出film这一列中的每一个值
print(type(film_names))
运行结果:
可以看到,这些值的结构式ndarray,所以,Series包含ndarray,它们之间的关系如下:ndarray∈Series∈DataFrame。也就是说,pandas是封装在numPy的基础之上的。
Series索引操作
之前我们用索引的时候,几乎都是数字0,1,2,3… ,那么,可不可以用字符串当做索引呢?当然可以。
from pandas import Series #创建Series需要导入Series
fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
film=fandango["FILM"]
film_names=film.values #取出film这一列中的每一个值
# print(film_names)
score_Ro=fandango["RottenTomatoes"].values #取出fandango["RottenTomatoes"]中的每一个值
series_custom=Series(score_Ro,index=film_names) #用电影名当成一个索引
print(series_custom[["Ant-Man (2015)","Cinderella (2015)"]]) #打印这两个电影对应的评分
print("---------------------------------")
five_ten=series_custom[5:10] #也可以不指定电影名,打印索引5——10的数据
print(five_ten)
运行结果:
Series排序操作
from pandas import Series
fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
film=fandango["FILM"]
film_names=film.values #取出film这一列中的每一个值
score_Ro=fandango["RottenTomatoes"].values #取出fandango["RottenTomatoes"]中的每一个值
series_custom=Series(score_Ro,index=film_names) #用电影名当成一个索引
list_index=series_custom.index.tolist() #把电影名当成索引放进数组
sort_index=sorted(list_index)
reIndex=series_custom.reindex(sort_index)
print(reIndex)
运行结果:
Series算平均值
from pandas import Series
fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
film=fandango["FILM"]
film_names=film.values #取出film这一列中的每一个值
score_Ro1=fandango["RottenTomatoes"].values #取出fandango["RottenTomatoes"]中的每一个值
score_Ro2=fandango["RottenTomatoes_User"].values #取出fandango["RottenTomatoes_User"]中的每一个值
series_custom1=Series(score_Ro1,index=film_names) #用电影名当成一个索引
series_custom2=Series(score_Ro2,index=film_names) #用电影名当成一个索引
series_avg=(series_custom1+series_custom2)/2 #求两个媒体对这部电影的评分,取均值
print(series_avg)
运行结果:
**
DataFrame
**
DataFrame当索引取数据
Series可以进行字符串当索引,那么,DataFrame能不能呢?
fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
fandango_index=fandango.set_index("FILM",drop=True) #设置电影名当成索引,drop=True表示原来的不要了,直接新建一个
cut_data=fandango_index["Avengers: Age of Ultron (2015)":"Hot Tub Time Machine 2 (2015)"]
print(cut_data)
运行结果:
注意:字符串要做索引,需要.set_index()操作之后才可以。
这里放下本章所讲的所有源码:
(需要哪章将注释去掉即可)
import pandas as pd
import numpy as np
#--------------------------读文件-------------------
# food_info=pd.read_csv("food_info.csv") #读文件
# food_info=pd.read_csv("food_info.csv") #读文件
# print(type(food_info))
# print("-----------------------")
# print(food_info.dtypes)
# print("-----------------------")
#-------------------------显示部分数据--------------------
# food_info=pd.read_csv("food_info.csv") #读文件
# print("默认显示前5行:\n",food_info.head())
# print("-----------------------")
# print("显示前3行:\n",food_info.head(3))
# print("-----------------------")
# print("显示后3行:\n",food_info.tail(3))
# print(food_info.columns)
#-------------------------查看维度--------------------
# food_info=pd.read_csv("food_info.csv") #读文件
# print(food_info.shape)
#-------------------------索引号取数据---------------
# food_info=pd.read_csv("food_info.csv") #读文件
# print(food_info.loc[0]) #取数据第1行
#-------------------------索引号切片数据---------------
# food_info=pd.read_csv("food_info.csv") #读文件
# #print(food_info.loc[3:4]) #取数据第4-5行,也就是索引号3-4
# print("-----------------------------------")
# print(food_info.loc[[2,5,8]]) #取数据第3,6,9行,也就是索引号2,5,8
#-------------------------取某一列的数据---------------
# food_info=pd.read_csv("food_info.csv") #读文件
# name_row=food_info["NDB_No"] #列的列名
# print(name_row)
#-------------------------取某n列的数据----------------
# food_info=pd.read_csv("food_info.csv") #读文件
# data_row=food_info[["NDB_No","Shrt_Desc"]] #列的列名
# print(data_row)
#-------------------------取特殊数据列的数据----------------
# food_info=pd.read_csv("food_info.csv") #读文件
# col_names=food_info.columns.tolist() #取数据的每一列的列名,把它放进List数组中
# print(col_names)
# print("-------------------------------")
# g_col_names=[]
# for i in col_names:
# if i.endswith("(g)"): #以"(g)"结尾的列名
# g_col_names.append(i) #追加到g_col_names数组中
# print(g_col_names)
#
# print("-------------------------------")
# head_data_3=food_info[g_col_names].head(3)
# print(head_data_3) #只打印数据前三行
#-------------------------数据换算----------------
# food_info=pd.read_csv("food_info.csv") #读文件
# mg_convertto_g=food_info["Calcium_(mg)"]/1000
# print(mg_convertto_g)
#-------------------------n列对应加减乘除运算及增加一列操作----------------
# food_info=pd.read_csv("food_info.csv") #读文件
# add_data=food_info["Ash_(g)"]+food_info["Carbohydrt_(g)"] #两列相加
# print(add_data.head(3)) #显示前三行数据
# print("----------------------------------------")
# print("初始的维度:\n",food_info.shape)
# mg_convertto_g=food_info["Calcium_(mg)"]/1000 #把这列所有数据除以1000
# food_info["mg_convertto_g"]=mg_convertto_g #增加新的一列数据
# print("现在的维度:\n",food_info.shape)
#------------------------某列最大值查找及归一化-----------------------
# food_info=pd.read_csv("food_info.csv") #读文件
# Max_data5=food_info["Sugar_Tot_(g)"].head(5).max() #取前5行最大值
# print("前5行最大值:\n",Max_data5)
# print("-------------------------------------------------")
# Max_data_all=food_info["Sugar_Tot_(g)"].max() #取该列所有数据中的最大值
# normalize_data_all=food_info["Sugar_Tot_(g)"]/Max_data_all #归一化处理
# print(normalize_data_all)
#------------------------排序操作-----------------------
# food_info=pd.read_csv("food_info.csv") #读文件
# food_info.sort_values("Ash_(g)",inplace=True) #默认升序排序,inplace表示是否生成一个新的dataframe,这里True表示不生成
# print("升序:\n",food_info["Ash_(g)"])
# print("-------------------------------")
# food_info.sort_values("Ash_(g)",inplace=True,ascending=False) #降序操作,ascending=False表示降序,ascending=True为默认,表示升序
# print("降序:\n",food_info["Ash_(g)"])
#------------------------缺失值查找与统计(notebook中运行最好)--------------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# #print(titanic_data.head())
# age=titanic_data["Age"]
# age_null=pd.isnull(age) #使用pandas中的空判断函数判断这一列,如果为空,会返回True
# print(age_null)
# #统计该列的缺失值个数
# count_null=len(age[age_null]) #查找的True可以作为索引
# print("缺失值个数:\n",count_null)
#------------------------求均值(在缺失值存在的条件下)--------------------
#-------------1、当缺失值存在且不处理的情况下:---------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# avg=sum(titanic_data["Age"])/len(titanic_data["Age"])
# print("平均年龄:\n",avg)
#-------------2、当缺失值存在且处理的情况下:---------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# age_null=pd.isnull(titanic_data["Age"]) #使用pandas中的空判断函数判断这一列,如果为空,会返回True
# good_age=titanic_data["Age"][age_null==False] #查找出这一列的缺失值为False的数据
# avg=sum(good_age)/len(good_age)
# print("平均年龄:\n",avg)
#-------------3、使用内置函数处理缺失值及求均值:---------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# good_age=titanic_data["Age"].mean() #均值,会自动忽略缺失值
# print("平均年龄:\n",good_age)
# titanic_data.fillna(good_age,inplace=True)#把NaN用平均值填充
# print(titanic_data["Age"].head(6))
#-------------------求对应舱位的均值----------------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# Pclass_Tick=titanic_data.pivot_table(index="Pclass",values="Fare",aggfunc=np.mean)
# '''
# .pivot_table(透视表)方法里面可以填写三个值,index表示统计的数据以谁为基准,
# values表示关系,相当于x与y之间的关系。aggfunc是一个方法,求它们对应的均值,当然,也可以不写,默认为求均值
# '''
# print(Pclass_Tick)
#
# one_both=titanic_data.pivot_table(index="Embarked",values=["Fare","Survived"],aggfunc=np.sum)
# print(one_both)
#------------------去掉NaN值(notebook中运行最好)--------------------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# td=titanic_data.dropna(axis=0,subset=["Age","Survived"])
#------------------重新排序--------------------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# new_titanic_date=titanic_data.sort_values("Age",ascending=False) #以年龄进行降序排序
# print(new_titanic_date.head(10))
# reset_index=new_titanic_date.reset_index(drop=True) #drop=True表示原来的不要了,直接新建一个
# print(reset_index.loc[0:9]) #切片取数据也可以
#------------------自定义函数查找缺失值个数--------------------------
# titanic_data=pd.read_csv("titanic_train.csv") #读文件
# def NaN_search(column):
# null_bool_data=pd.isnull(column)
# NaN_data=column[null_bool_data]
# return len(NaN_data)
#
# count_NaN=titanic_data.apply(NaN_search) #调用该函数,统计NaN个数
# print(count_NaN)
#-------------------Series数据结构------------------------------
# fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
# film=fandango["FILM"]
# print(type(film))
#
# film_names=film.values #取出film这一列中的每一个值
# print(type(film_names))
#-------------------Series索引操作------------------------------
# from pandas import Series #创建Series需要导入Series
# fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
# film=fandango["FILM"]
# film_names=film.values #取出film这一列中的每一个值
# # print(film_names)
# score_Ro=fandango["RottenTomatoes"].values #取出fandango["RottenTomatoes"]中的每一个值
# series_custom=Series(score_Ro,index=film_names) #用电影名当成一个索引
# print(series_custom[["Ant-Man (2015)","Cinderella (2015)"]]) #打印这两个电影对应的评分
# print("---------------------------------")
# five_ten=series_custom[5:10] #也可以不指定电影名,打印索引5——10的数据
# print(five_ten)
#-------------------Series排序操作------------------------------
# from pandas import Series
# fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
# film=fandango["FILM"]
# film_names=film.values #取出film这一列中的每一个值
# score_Ro=fandango["RottenTomatoes"].values #取出fandango["RottenTomatoes"]中的每一个值
# series_custom=Series(score_Ro,index=film_names) #用电影名当成一个索引
# list_index=series_custom.index.tolist() #把电影名当成索引放进数组
# sort_index=sorted(list_index)
# reIndex=series_custom.reindex(sort_index)
# print(reIndex)
#---------------------Series算平均值-------------------------------
# from pandas import Series
# fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
# film=fandango["FILM"]
# film_names=film.values #取出film这一列中的每一个值
# score_Ro1=fandango["RottenTomatoes"].values #取出fandango["RottenTomatoes"]中的每一个值
# score_Ro2=fandango["RottenTomatoes_User"].values #取出fandango["RottenTomatoes_User"]中的每一个值
# series_custom1=Series(score_Ro1,index=film_names) #用电影名当成一个索引
# series_custom2=Series(score_Ro2,index=film_names) #用电影名当成一个索引
# series_avg=(series_custom1+series_custom2)/2 #求两个媒体对这部电影的评分,取均值
# print(series_avg)
#---------------------DataFrame当索引取数据-------------------------------
# fandango=pd.read_csv("fandango_score_comparison.csv") #读文件
# fandango_index=fandango.set_index("FILM",drop=True) #设置电影名当成索引,drop=True表示原来的不要了,直接新建一个
# cut_data=fandango_index["Avengers: Age of Ultron (2015)":"Hot Tub Time Machine 2 (2015)"]
# print(cut_data)