Python-科学数据库04--Pandas

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值