为什么要学pandas
numpy
只能够帮助处理数值型数据
而pandas
还可以处理其他数据,如字符串,时间序列
pandas的常用的数据类型
1.Series,一维,带标签数组
2.DataFrame,二维,Series容器
先来看看Series
什么是带标签?
我们先来创建一个Series数组
import pandas as pd
t = pd.Series([1,3,4,5])
print(type(t))
print(t)
其实标签就是索引
但是这索引可以指定,可以为字符串
import pandas as pd
t = pd.Series([1,3,4,5],index=list('abcd'))
print(t)
还可以通过字典来创建一个Series
import pandas as pd
temp_dict = {'name':'xiaoming','age':30,'tel':12345}
t = pd.Series(temp_dict)
print(t)
修改dtype
.astype('int')
和numpy中一样
Series的切片和索引
和numpy中一样
import pandas as pd
temp_dict = {'name':'xiaoming','age':30,'tel':12345}
t = pd.Series(temp_dict)
print(t)
print("*"*50)
# 取某行,通过标签或者索引都可以
print(t['age'])
print(t[0])
print("*"*50)
# 取连续多行
print(t[1:])
print("*"*50)
# 取不连续的多行
print(t[[0,2]])
bool 索引
import pandas as pd
t = pd.Series(range(10))
print(t)
print(t[t<5])
Series索引和值
Series可以取出索引和值
import pandas as pd
t = pd.Series(range(5),index=['a','b','c','d','e'])
print(t)
print(t.index)
print(type(t.index))
print(t.values)
print(type(t.values))
numpy中很多方法都使用与pandas中
pandas读取外部数据
可以读取数据库,excel,csv等很多文件
比如读取csv文件
pd.read_csv('file_path')
DataFrame
创建DataFrame
import pandas as pd
import numpy as np
t = pd.DataFrame(np.arange(12).reshape(3,4))
print(t)
不仅有行索引index
还有列索引columns
指定索引
import pandas as pd
import numpy as np
t = pd.DataFrame(np.arange(12).reshape(3,4),index=list('abc'),columns=list('wxyz'))
print(t)
通过字典创建DataFrame
import pandas as pd
d = {'name':['hong','ming'],'age':[20,30],'tel':[10043,12345]}
t = pd.DataFrame(d)
print(t)
每一行是一条记录,每一列的数据类型相同
如果有些值是缺失的,那么对应的值为 NaN
DataFrame中描述信息
排序
df.sort_values(by='列索引')
DataFrame索引和切片
取行,取前20行 df[:20]
取列,df["列索引"]
方括号写数字表示行,字符串表示列
同是对行和列操作
df.loc
通过标签索引获取数据
df.iloc
通过位置索引获取数据
注意是闭合的
pandas之布尔索引
pandas之字符串方法
缺失数据处理
数据缺失通常有两种情况:
一种就是空,None等,在pandas是NaN(和np.nan一样)
另一种就是我们让其为0
判断数据是不是Nan: pd.isnull(df)
, pd.notnull(df)