爲什麼要學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)