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