** 和鯨社群 和鯨訓練營 第二期第一期筆記見pandas基礎 | 實戰
import pandas as pd
import numpy as np
# 1.讀取本地excel資料
df = pd.read_excel(r"e:\pandas120.xlsx"
)# 2.檢視df資料前5行
df.head(
)'''
createtime education salary
0 2020-03-16 11:30:18 本科 20k-35k
1 2020-03-16 10:58:48 本科 20k-40k
2 2020-03-16 10:46:39 不限 20k-35k
3 2020-03-16 10:45:44 本科 13k-20k
4 2020-03-16 10:20:41 本科 10k-20k
'''# 3.將salary列資料轉換為最大值與最小值的平均值
df['salary'
]= df[
'salary'].
(lambda x:
(int
(str
(x).replace(
'k','')
.split(
'-')[0
])+int
(str
(x).replace(
'k','')
.split(
'-')[1
]))/
2*1000
)# 4.將資料根據學歷進行分組並計算平均薪資
df.groupby(
['education'])
['salary'
].mean(
).reset_index(
).sort_values(
'salary'
,ascending=
false
)# 5.將createtime列時間轉換為月-日
## 方法一
df['createtime'].
(lambda x:
str(x)[5
:10])
##方法二
df['createtime'].
(lambda x:
str(x.month)
+'-'
+str
(x.day)
)# 6.檢視索引、資料型別和記憶體資訊
df.info(
)# 7.檢視數值型列的匯**計
df.describe(
)# 8.新增一列根據salary將資料分為三組
## 資料分箱 pd.cut( x, bins, right=true, labels=none, retbins=false, precision=3, include_lowest=false, duplicates='raise', )
## bins 若填整數,則把x等分成幾份。right=true,預設包含最右側的數值。
## pd.cut用法詳見
bins =[0
,5000
,20000
,50000
]group_names =
['低'
,'中'
,'高'
]df[
'categories'
]= pd.cut(df[
'salary'
], bins, labels=group_names)
df# 9.按照salary列對資料降序排列
df.sort_values(
['salary'
],ascending=
false
)# 10.取出第33行資料
df.iloc[32]
# 11.計算salary列的中位數
df['salary'
].median(
)# 12.繪製薪資水平頻率分布直方圖
import matplotlib.pyplot as plt
from jupyterthemes import jtplot
%matplotlib inline
jtplot.style(theme=
'onedork'
)#選擇乙個繪圖主題
plt.hist(df[
'salary'])
# 13.繪製薪資水平密度曲線
##方法一
import seaborn as sns
sns.kdeplot(df[
'salary'
],shade=
true
)## 方法二
df['salary'
].plot(kind =
'kde'
,xlim=(0
,80000))
# 14. 刪除最後一列categories
## 方法一
df.drop(
['categories'
],axis=
1,inplace=
true
)## 方法二
del df[
'categories'
]# 15.將df的第一列與第二列合併為新的一列
df['tmp1'
]= df[
'education'
]+df[
'createtime'
]# 16.將education列與salary列合併為新的一列
## map():對series使用
df['tmp2'
]= df[
'education'
]+ df[
'salary'].
map(
str)
df# 17.計算salary最大值與最小值之差
df['salary'].
max(
)-df[
'salary'].
min(
)# 18.將第一行與最後一行拼接
## 方法一
pd.concat(
[df.loc[[0
]],df.loc[
[len
(df)-1
]]])
## 方法二
pd.concat(
[df[0:
1],df[-2
:-1]
])# 19.將第8行資料新增至末尾[7
]])# 20.檢視每列的資料型別
df.dtypes
# 21.將createtime列設定為索引
df.set_index(
'createtime'
)# 22.生成乙個和df長度相同的隨機數dataframe
df2= pd.dataframe(np.random.randint(1,
100,
len(df)))
# 23.將上一題生成的dataframe與df合併
df = pd.concat(
[df,df2]
, axis=1)
# 24.生成新的一列new為salary列減去之前生成隨機數列
df['new'
]= df[
'salary'
]- df[0]
# 25.檢查資料中是否含有任何缺失值
df.isnull(
).values.
any(
)# 26.將salary列型別轉換為浮點數
df['salary'
]= df[
'salary'].
map(
float
)# 27.計算salary大於10000的次數
df[df[
'salary'
]>
10000][
'salary'
].count(
)# 28.檢視每種學歷出現的次數
df.groupby(
['education'])
['education'
].count(
)# 29.檢視education列共有幾種學歷
df['education'
].value_counts(
)# 30.提取salary與new列的和大於60000的最後3行
df[df[
'salary'
]+df[
'new'
]>
60000
].tail(
3)
python 安裝pandas教程
python3 安裝pandas 如果使用python2需要安裝的話,可以用pip install pandas 如果使用python3需要安裝的話,可以用pip3 install pandas 會自動安裝依賴庫 呼叫包,看下是否安裝成功 python3 python 3.8 1 tags v3.8...
python資料科學 Pandas
學習筆記 pandas物件 資料的取值與選擇 pandas數值運算方法 缺失值的處理 層級索引 合併與連線資料集 累積與分組 pandas物件 pandas有三個基本資料結構 series dataframe和index 資料的取值與選擇 pandas數值運算方法 pandas是建立在numpy基礎...
Pandas學習 Python基礎
二 numpy基礎 三 練習 1 列表推導式語法 for i in 其中第乙個 為對映函式,輸入為i,第二個 表示迭代物件。2 列表表示式還可支援多層巢狀。3 實用的語法糖條件賦值,形式為value a if condition else b。l i 2 for i in range 7 列表生成表...