【Pandas】選擇數據

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章