二、Pandas ——选择数据

 

import pandas as pd
import numpy as np

dates = pd.date_range("20190101", periods=6)
df = pd.DataFrame(np.arange(24).reshape((6, 4)),
                  index=dates, columns=["A", "B", "C", "D"])
print(df)
#              A   B   C   D
# 2019-01-01   0   1   2   3
# 2019-01-02   4   5   6   7
# 2019-01-03   8   9  10  11
# 2019-01-04  12  13  14  15
# 2019-01-05  16  17  18  19
# 2019-01-06  20  21  22  23
print("============选择某一列==============")
#两者等价
print(df["A"])
print(df.A)
# 2019-01-01     0
# 2019-01-02     4
# 2019-01-03     8
# 2019-01-04    12
# 2019-01-05    16
# 2019-01-06    20
# Freq: D, Name: A, dtype: int32
print("============切片选择==============")
print(df[0:3])
#             A  B   C   D
# 2019-01-01  0  1   2   3
# 2019-01-02  4  5   6   7
# 2019-01-03  8  9  10  11
print(df["20190102":"20190104"])
#              A   B   C   D
# 2019-01-02   4   5   6   7
# 2019-01-03   8   9  10  11
# 2019-01-04  12  13  14  15
print("============通过行列名 label选择: loc ==============")
print(df.loc["20190102"])
# A    4
# B    5
# C    6
# D    7
# Name: 2019-01-02 00:00:00, dtype: int32
print(df.loc[:, ["A", "B"]])
#              A   B
# 2019-01-01   0   1
# 2019-01-02   4   5
# 2019-01-03   8   9
# 2019-01-04  12  13
# 2019-01-05  16  17
# 2019-01-06  20  21
print(df.loc["20190102", :])
# A    4
# B    5
# C    6
# D    7
# Name: 2019-01-02 00:00:00, dtype: int32
print("============通过position位置选择: iloc==============")
print(df.iloc[3])
# A    12
# B    13
# C    14
# D    15
# Name: 2019-01-04 00:00:00, dtype: int32
print(df.iloc[3:5, 1:3])
#              B   C
# 2019-01-04  13  14
# 2019-01-05  17  18
print(df.iloc[[1, 3, 5], 1:3])
#              B   C
# 2019-01-02   5   6
# 2019-01-04  13  14
# 2019-01-06  21  22
print("============行列名label 和 position综合使用选择: loc和iloc==============")
# print(df.ix[:3, ["A", "C"]])  # 不提倡使用,会报警告,但是结果会输出
print("============布尔筛选数据Boolean==============")
# 选择出df中 A 列大于 8 的所有数据
print(df[df.A > 8])
#              A   B   C   D
# 2019-01-04  12  13  14  15
# 2019-01-05  16  17  18  19
# 2019-01-06  20  21  22  23

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值