1.創建一個DataFrame
import numpy as np
import pandas as pd
dates = pd.date_range("20200301", periods=6)
df1 = pd.DataFrame(np.arange(24).reshape((6, 4)), index=dates, columns=["A", "B", "C", "D"])
print(df1)
# 結果爲
# A B C D
# 2020-03-01 0 1 2 3
# 2020-03-02 4 5 6 7
# 2020-03-03 8 9 10 11
# 2020-03-04 12 13 14 15
# 2020-03-05 16 17 18 19
# 2020-03-06 20 21 22 23
2.選擇數據
# 選擇A列
print(df1["A"])
print(df1.A)
# 結果都是
# 2020-03-01 0
# 2020-03-02 4
# 2020-03-03 8
# 2020-03-04 12
# 2020-03-05 16
# 2020-03-06 20
# Freq: D, Name: A, dtype: int32
print(df1[["A","B"]]) # 選擇A、B兩列
print(df1[0:1]) # 取第1行,不能通過df1[0]這種寫法取一行
print(df1[0:5]) # 取前5行
print(df1["20200302":"20200305"]) # 取其中某幾行
# 輸出結果爲:
# A B C D
# 2020-03-02 4 5 6 7
# 2020-03-03 8 9 10 11
# 2020-03-04 12 13 14 15
# 2020-03-05 16 17 18 19
通過標籤選擇數據,loc[ 標籤名 ]
# 通過標籤選擇數據
print(df1.loc["20200303", ["A", "C"]]) # 選擇某一行的某些列
# 輸出結果爲:
# A 8
# C 10
# Name: 2020-03-03 00:00:00, dtype: int32
print(df1.loc["20200303":"20200305", ["A", "C"]]) # 選擇某些行的某些列
print(df1.loc[:, ["A", "C"]]) # 選擇全部行的某些列
通過位置選擇數據,iloc[ 數值 ]
# 通過位置選擇數據
print(df1.iloc[2]) # 選擇第一行(下標從0開始)
# 輸出結果爲:
# A 8
# B 9
# C 10
# D 11
# Name: 2020-03-03 00:00:00, dtype: int32
print(df1.iloc[2:5]) # 選擇某幾行
# 輸出結果爲:
# A B C D
# 2020-03-03 8 9 10 11
# 2020-03-04 12 13 14 15
# 2020-03-05 16 17 18 19
print(df1.iloc[2:5, 0:2]) # 選擇某幾行的某幾列
# 輸出結果爲:
# A B
# 2020-03-03 8 9
# 2020-03-04 12 13
# 2020-03-05 16 17
columns = df1.columns.values # 獲取列名
print(df1.iloc[:, 0:len(columns)-1]) # 獲取除了最後一列的所有列
混合選擇,ix[ 行,列 ],行和列可以是標籤名也可以是整型
# 混合選擇
print(df1.ix["20200301":"20200302", "A":"B"])
print(df1.ix[0:2, 0:2])
print(df1.ix[0:2, "A":"B"])
print(df1.ix["20200301":"20200302", 0:2])
# 以上輸出結果都爲:
# A B
# 2020-03-01 0 1
# 2020-03-02 4 5
根據比較條件選擇
print(df1[df1.A > 10]) # 選擇df1中A列的值大於10的行
# 輸出結果爲:
# A B C D
# 2020-03-04 12 13 14 15
# 2020-03-05 16 17 18 19
# 2020-03-06 20 21 22 23