python data analysis library或pandas是基於numpy的一種工具,該工具是為了解決資料分析任務而建立的。pandas納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。
series是一維陣列,與numpy中的一維array類似。二者與python基本的資料結構list也很相近,其區別是list中的元素可以是不同的資料型別,而array和series中則只允許儲存相同的資料型別。
1.建立
#通過list建立series
s1 = pd.series([7, 3, 6, 2, 9, 5, 8])
#通過dict建立series
s2 = pd.series()
#通過list建立series,並指定index
2.選取
#3.增加、刪除、修改獲取前3個資料
s1.head(3)
#獲取後3個資料
s1.tail(3)
#獲取index為2的資料
s1[2]
#獲取1<=index<4的資料
s1[1:4]
#獲取index>3的資料
s1[s1.index>3]
#獲取資料值》5的資料
s1[s1>5]
#dataframe是二維的**型資料結構。可以將dataframe理解為series的容器。增加資料index=8
s1[8] = -1
#刪除資料index=3,不修改原series
s1 = s1.drop(3)
#對1<=index<3的資料賦值30
s1[1:3] = 30
#對index為4,6的資料賦值50
s1[4, 6] = 50
1.建立
#通過dict建立dataframe
2.時間序列型別index
#月dates = pd.date_range('2017-10-08', periods = 10, freq = "m")
#天dates = pd.date_range('2017-10-08', periods = 10, freq = "d")
#時dates = pd.date_range('2017-10-08', periods = 10, freq = "h")
3.選取
#4.增加、刪除、修改獲取前3行資料
df1.head(3)
#獲取後3行資料
df1.tail(3)
#獲取列
df1.name, df1['
name
'], df1[["
name
", "
money"]]
#獲取行
df1[0:3], df1.loc[0:3]
#同時獲取行列
df1.loc[0:3, ["
name
", "
money
"]]
#5.where增加列df1["
new"] = 6
#刪除列,不修改原dataframe
df1 = df1.drop("
new", axis = 1)
#增加行,修改原dataframe
df1.loc[df1.index.max() + 1] =
#增加行,不修改原dataframe
name
": "
", "
age": 701, "
money
": 900}], ignore_index =true)
#刪除行,不修改原dataframe
df1 = df1.drop([2])
#修改資料
df1.loc[5,"
age"] = 888df1.loc[8:10, ["
age", "
money
"]] = [11, 222]
#6.distinct過濾資料,使用dataframe.dtypes檢視資料型別
df1[df1["
age"] > 30]
df1[(df1[
"age
"] > 30) & (df1["
money
"] < 600)], df1[(df1.age > 40) & (df1.money < 600)]
df1[df1[
"name
"].isin(["
amazon
", "
youtube
"])]
#7.join去重df1.age.drop_duplicates()
df1[[
"age
", "
money
"]].drop_duplicates()
#8.group by聯接df3 = pd.merge(df1, df2, how="
left
", left_on = "
name
", right_on = "
name")
df3 = pd.merge(df1, df2, how="
right
", left_on = "
name
", right_on = "
name
")
#9.order by分組df1.groupby("
age")["
money
"].sum()
df1.groupby([
"age
", "
name
"])["
money
"].count()
#10.union排序df1.sort_values("
age", ascending=true)
df1.sort_values([
"age
", "
money
"], ascending=[true, false])
#合併df2 =df1.copy(true)
df3 = pd.concat([df1,df2], ignore_index =true)
11.匯入和儲存
excel格式需要安裝openpyxl、xlrd包
#儲存為csv格式
df1.to_csv("
data.csv
", encoding="
utf-8")
#從csv檔案讀取
df1 = pd.read_csv("
data.csv")
#儲存為excel格式
df1.to_excel("
data.xlsx
", sheet_name = "
sheet1
", encoding="
utf-8")
#從excel檔案讀取
df1 = pd.read_excel("
data.xlsx
", sheet_name = "
sheet1
")
pandas 常用函式
本文翻譯自文章 pandas cheat sheet python for data science 同時新增了部分註解。對於資料科學家,無論是資料分析還是資料探勘來說,pandas是乙個非常重要的python包。它不僅提供了很多方法,使得資料處理非常簡單,同時在資料處理速度上也做了很多優化,使得和...
Pandas常用函式
count 非 na 值的數量 describe 針對 series 或 df 的列計算匯 計 min max 最小值和最大值 argmin argmax 最小值和最大值的索引位置 整數 idxmin idxmax 最小值和最大值的索引值 quantile 樣本分位數 0 到 1 sum求和 mea...
pandas常用函式
pd.read csv filename 從csv檔案匯入資料 pd.read table filename 從限定分隔符的文字檔案匯入資料 pd.read excel filename 從excel檔案匯入資料 pd.read sql query,connection object 從sql表 庫...