numpy能够处理数值型数据,pandas除了处理数值之外(基于numpy),还能帮助我们处理其他类型的数据
1.Pandas的常用数据类型
Series一维,带标签数组
DataFrame二维,Seires容器
Series对象本质上由两个数组构成,一个数组构成对象的键(index:索引),一个数组构成对象的值(values),键->值
import pandas as pd
t=pd.Series([1,2,3,4,5,55])
print(t)
t2=pd.Series([1,2,3,4,5],index=list('abced'))
print(t2)
##通过字典创建
tem_dict={'name':'xiaohong','age':30,'tel':10086}
t3=pd.Series(tem_dict)
print(t3)
t2.astype(float)
print(t2.dtype)
##Series的切片和索引
a1=t3['tel']
a2=t3[2]
print(a1,a2)
##连续和不连续
a4=t3[[1,2]]
a5=t3[:2]
a6=t3[["age","tel"]]
print(a4,a5,a6)
pandas之Series的索引和值
2.Series读取外部文件
import pandas as pd
##读取csv中的文件
df=pd.read_csv('./dogNames2.csv')
print(df)
3.Pandas之DataFrame
DataFrame对象既有行索引,又有列索引
行索引,index 0轴,axis=0
列索引,columns 1轴,axis=1
a=pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('WXYZ'))
print(a)
d1={'name':['xiaoming','xiaogang'],'age':[20,32],'tel':[10086,10010]}
print(pd.DataFrame(d1))
属性
具体内容见笔记
出现问题:pymongo不会插用
练习
import pandas as pd
import numpy as np
##读取csv中的文件
df=pd.read_csv('./dogNames2.csv')
print(df)
print('77.77'*100)
a=pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('WXYZ'))
print(a)
d1={'name':['xiaoming','xiaogang'],'age':[20,32],'tel':[10086,10010]}
print(pd.DataFrame(d1))
##
#print(df.head())
#print(df.info())
#dataFrame中排序的方法
##升序
#df.sort_values(by='Count_AnimalName',ascending=False)
print('**'*10)
#print(df)
#查看前10个
#print(df.tail(10))
df=df.sort_values(by='Count_AnimalName',ascending=False)
print(df.head(5))
Pandas取行或者列的注意事项
[]取数字表示取行,对行进行操作
[]写字符串,表示取列索引,对列进行操作
import pandas as pd
import numpy as np
##读取csv中的文件
df=pd.read_csv('./dogNames2.csv')
print(df)
print('77.77'*100)
a=pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('WXYZ'))
print(a)
d1={'name':['xiaoming','xiaogang'],'age':[20,32],'tel':[10086,10010]}
print(pd.DataFrame(d1))
##
#print(df.head())
#print(df.info())
#dataFrame中排序的方法
##升序
#df.sort_values(by='Count_AnimalName',ascending=False)
print('**'*10)
#print(df)
#查看前10个
#print(df.tail(10))
df=df.sort_values(by='Count_AnimalName',ascending=False)
print(df.head(5))
##取前100行
print(df[:20]) ##传数字取行
print(df[:20]['Row_Labels']) ##传内容取列
Pandas之loc
q1=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("WXYZ"))
print(q1)
q2=q1.loc['a','Z']
print(q2)
print(q1.loc["a",:])
print(q1.loc[:,"W"])
##不连续取某几行激烈
print(q1.loc[["a","c"],:])
print(q1.loc[:,['X','Y']])
print(q1.loc[['a','b'],['W','Y']])
Pandas之iloc
print(q1.iloc[1])
print(q1.iloc[:,2])
print(q1.iloc[[0,2],[2,1]])
q1.iloc[1:,2:]=555
print(q1)
Pandas常用统计方法
import numpy as np
import pandas as pd
file_path='IMDB-Movie-Data.csv'
df=pd.read_csv(file_path)
print(df.info())
print(df.head(1))
##获取电影 的平均评分
print(df['Rating'].mean())
##导演的人数
print(len(set(df['Director'].tolist())))
#print(len(df['Director'].unique())
##获取演员的人数
temp_actors_list=df['Actors'].str.split(",").tolist()
actors_list=[i for j in temp_actors_list for i in j]
actors_num=len(set(actors_list))
print(actors_num)