数据处理 numpy and pandas——007_pandas 选择数据

使用pandas中的loc、iloc、ix(不建议使用)函数

源代码及注释:

import pandas as pd
import numpy as np

dates = pd.date_range('20160101',periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=['A','B','C','D'])
# # pd.DataFrame(数据,行索引,列索引)
#
# print(df)
# print(df.A)         #print(df['A'],df.A)     #选择列
# print('*******************************************')
# print(df['20160102':'20160104'])      #选择行

#  选择标签 : loc
print(df.loc['20160103'])        #选择此标签下数据
print(df.loc['20160102',['A','B']])

#  从位置选择数据:iloc
print(df.iloc[3])
print(df.iloc[3:5,1:3])
print(df.iloc[[1,3,5],1:3])

#  (loc 和  iloc 一起使用 )= 使用ix
print(df.ix[:3,['A','C']])

#进行是或否的筛选
print(df[df.A>8])     #将A中大于8的行显示出来


不建议使用 ix 函数的原因见下(引用自知乎):

ix / loc 可以通过行号和行标签进行索引,比如 df.loc[‘a’] , df.loc[1], df.ix[‘a’] , df.ix[1]而iloc只能通过行号索引 , df.iloc[0] 是对的, 而df.iloc[‘a’] 是错误的loc 和 ix 大部分时候行为都差不多, 但是当假如某个行的索引标签就是一个 INT 比如 1 的时候, loc 优先将 df.loc[1] 理解为行标签为 1 的索引, 而 df.ix[1] 优先将其理解为 行号为 1 的索引(就是第二行)为了避免不小心犯错误, 建议:1.当用行号索引的时候, 尽量用 iloc 来进行索引; 2. 而用标签索引的时候用 loc , 3. ix 就别用了。

作者:深蓝加菲
链接:https://www.zhihu.com/question/47362048/answer/255165391
来源:知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值