2021-09-06 Pandas

为什么要学习pandas
那么问题来了:numpy已经能够帮助我们处理数据,能够结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢?
numpy能够帮助我们处理数值型数据,但是这还不够很多时候,我们的数据除了数值之外,还有字符串,还有时间序列等。
比如:我们沟通过爬虫获取到了存储在数据库中的数据
比如:之前youtune的例子中除了数值之外还有国家的信息,视频的分类(tag)信息,标题信息等。
所以,numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能帮助我们处理其他类型的数据。
一、Pandas的常用数据类型
1、Series一维,带标签数组。
2、DataFrame二维,Series容器
import pandas as pd
t1=pd.Series([1,2,31,12,3,4])
print(t1)
结果:0 1
1 2
2 31
3 12
4 3
5 4 dtype:int64

t2=pd.Series([1,23,2,2,2],index=list(“abcde”))
print(t2)
结果:
a 1
b 23
c 2
d 2
e 1
dtype:int 64
temp_dict={“name”:“xiaohong”,“age”:30,“tel”:10086}
t3=pd.Series(temp_dict)
print(t3)
结果:
name xiaohong
age 30
tel 10086
dtype:object
二、Pandas之Series切片和索引
print(t3[“age”])
print(t3[“tel”])
结果:
30
10086
print(t3[1])
print(t3[2])
print(t3[0])
结果:
30
10086
xiaohong

print(t3[:2])
结果:
name xiaohong
age 30
dtype:object

print(t3[1:2])
结果:
age 30
dtype:object

print(t3[[“age”,“tel”]])
结果:
age 30
tel 10086
dtype:object

print(t[t1>10])
结果:
2 31
3 12
dtype:int 64

print(t3.index)
结果:
Index([‘name’,‘age’,‘tel’],dtype=‘object’)
for i in t3.index
print(i)
结果:
name
age
tel
print(len(t3.index))
结果:3
print(list(t3.index)[:2])
结果:[‘name’,‘age’]
print(t3.values)
print(type(t3.values))
结果:[‘xiaohong’ 30 10086]
<class ‘numpy.ndarray’>
Series对象本质上由两个数组构成
一个数组构成对象的键(index、索引),一个数组构成对象的值(values).键值
ndarray的很多方法都可以运用于Series类型,比如argmax,clip
Series具有where方法,但是结果和ndarray不同
三、Pandas之读取外部数据
现在假设我们有一组关于狗的名字的统计数据,那么为了观察这组数据的情况,我们应该怎么做呢?
import pandas as pd
df=pd.read_csv(r’c:\Uers\WLQ\Desktop\dogNames2.csv’)
print(df)
四、Pandas之DataFrame
import pandas as pd
import numpy as np
t1=pd.DataFrame(np.arange(12).reshape(3,4)
print(t1)
结果:
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11

DataFrame对象既有行索引,又有列索引
行索引,表明不同行,横向索引,叫index,0轴,axis=0
列索引,表明不同列,叫columns,1轴,axis=1
t2=pd.DataFrame(np.arange(12).reshape(3,4),index=list(“abc”),columns=list(“WXYZ”))
print(t2)
W X Y Z
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
如果只取某一行某一列就是一个一维数组,是一个series在pandas里面
DataFrame相当于是Series的容器、

t3={“name”:[“xiaoming”,“xiaogang”],“age”:[20,32],“tel”:[10086,10010]}
print(pd.DataFrame(t3))
age name tel
0 20 xiaoming 10086
1 32 xiaogang 10010
print(type(t3))
<class ‘dict’>
t4=[{“name”:“xiaohong”,“age”:32,“tel”:10010},{“name”:“xiaogang”,“tel”:10000},{“name”:“xiaowang”,“age”:22}
t5=pd.DataFrame(t4)
print(t5)

              age            name          tel
   0         32           xiaohong      10010.0
   1        NaN         xiaogang       10000.0
   2        22.0         xiaowang       NaN

print(t5.index)索引,行索引
结果:RangeIndex(start=0,step=3,step=1)
print(t5.columns)列索引
结果:Index([‘age’,‘name’,‘tel’],dtype=‘object’)
print(t5.values)值
结果:[[‘xiaohong’ 32.0 10010.0]
[‘xiaogang’ nan 10000.0]
[‘xiaowang’ 22.0 nan ]]
print(t5.shape)
结果:(3,3)
print(t5.dtypes)
结果: name object
age float 64
tel float64
dtype:object
print(t5.ndim)数据的维度,2维数据
结果:2
print(df.head())
显示前几行,默认前五行,head里面可以传参数,head(1)显示第一行,head(2)显示前2行
print(df.tail(2))显示后2行

print(df.info()) 显示df的概览
print(df.describe()) 快速计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值