import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(24).reshape(6,4),index=list("ABCDEF"),columns=list("WXYZ"))
# df 輸出的結果爲:
W X Y Z
A 0 1 2 3
B 4 5 6 7
C 8 9 10 11
D 12 13 14 15
E 16 17 18 19
F 20 21 22 23
1、pandas排序,並取前N列數據
# df_sorted = df.sort_values(by="列名")
df_sorted = df.sort_values(by="Z")[:3] 按Z列排序,並取前三行
# 輸出結果爲:
W X Y Z
A 0 1 2 3
B 4 5 6 7
C 8 9 10 11
2、取行、取列DataFrame.loc,DataFrame.iloc
- 取行DataFrame.loc,DataFrame.iloc
df.loc["D"] # loc取單行
# 輸出結果爲:
W 12
X 13
Y 14
Z 15
Name: D, dtype: int32
df.loc["A":"D"] # loc取連續多行
# 輸出結果爲:
W X Y Z
A 0 1 2 3
B 4 5 6 7
C 8 9 10 11
D 12 13 14 15
df.loc[["A","D"]] # loc取不連續多行
# 輸出結果爲:
W X Y Z
A 0 1 2 3
D 12 13 14 15
df.iloc[0] # iloc取單行
# 輸出結果爲:
W 0
X 1
Y 2
Z 3
Name: A, dtype: int32
df.iloc[1:3] # iloc取連續多行
# 輸出結果爲:
W X Y Z
B 4 5 6 7
C 8 9 10 11
df.iloc[[0,2,3]] # iloc取不連續多行
# 輸出結果爲:
W X Y Z
A 0 1 2 3
C 8 9 10 11
D 12 13 14 15
-
取列
df.loc[:,"Y"]
# 輸出結果爲: # loc取單列
A 2
B 6
C 10
D 14
E 18
F 22
Name: Y, dtype: int32
df.loc[:,"X":"Z"]
# 輸出結果爲: # loc取連續多列
X Y Z
A 1 2 3
B 5 6 7
C 9 10 11
D 13 14 15
E 17 18 19
F 21 22 23
df.loc[:,["X","Z"]] # loc取不連續多列
# 輸出結果爲:
X Z
A 1 3
B 5 7
C 9 11
D 13 15
E 17 19
F 21 23
df.iloc[:,2] # iloc取單列
# 輸出結果爲:
A 2
B 6
C 10
D 14
E 18
F 22
Name: Y, dtype: int32
df.iloc[:,1:3] # iloc取連續多列
# 輸出結果爲:
X Y
A 1 2
B 5 6
C 9 10
D 13 14
E 17 18
F 21 22
df.iloc[:,[0,2]] # iloc取不連續多列
# 輸出結果爲:
W Y
A 0 2
B 4 6
C 8 10
D 12 14
E 16 18
F 20 22
-
取行和列
df.loc["C","Y"] # loc取單行單列,即爲某一個座標的值
# 輸出結果爲:
10
df.loc["A":"C","X":"Z"] # loc取連續多行多列
# 輸出結果爲:
X Y Z
A 1 2 3
B 5 6 7
C 9 10 11
df.loc[["A","C","E"],["W","Y"]] # loc取不連續多行多列
# 輸出結果爲:
W Y
A 0 2
C 8 10
E 16 18
df.iloc[2,2] # iloc取單行單列,即爲某一個座標的值
# 輸出結果爲:
10
df.iloc[0:3,1:4] # iloc取連續多行多列
# 輸出結果爲:
X Y Z
A 1 2 3
B 5 6 7
C 9 10 11
df.iloc[[0,2,4],[0,2]] # iloc取不連續多行多列
# 輸出結果爲:
W Y
A 0 2
C 8 10
E 16 18
-
賦值更改數據
df.iloc[[0,2,4],[0,2]] = np.nan
# df輸出結果爲:
W X Y Z
A NaN 1 NaN 3
B 4.0 5 6.0 7
C NaN 9 NaN 11
D 12.0 13 14.0 15
E NaN 17 NaN 19
F 20.0 21 22.0 23
-
布爾索引bool 注意嚴格按照格式來做
df[(df["Z"]>10)&(df["Z"]<20)]
# 輸出結果爲:
W X Y Z
C NaN 9 NaN 11
D 12.0 13 14.0 15
E NaN 17 NaN 19