首先定义panda
dates=pd.date_range(‘20130101‘,periods=6) # print(dates) df=pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=[‘a‘,‘b‘,‘c‘,‘d‘]) print(df)
a b c d 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15 2013-01-05 16 17 18 19 2013-01-06 20 21 22 23
一、选择特定的某一列
# 选择某一列 选列比较简单 print("选择具体的某一列") print(df[‘a‘]) #print(df.a)#这两种表达方式一致
结果:
选择具体的某一列 2013-01-01 0 2013-01-02 4 2013-01-03 8 2013-01-04 12 2013-01-05 16 2013-01-06 20
二、选择特定的几行
2.1通过仿照array的形式来选择
print("选择特定的几行 0~1") print(df[0:1]) print("选择20130102 到 20130104 行") print(df[‘20130102‘:‘20130104‘])
结果:
选择特定的几行 0~1 a b c d 2013-01-01 0 1 2 3 选择20130102 到 20130104 行 a b c d 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15
2.2按照标签来选择(其实应该说是按照index来选择) 不管是行还是列 都必须是lable
# 按标签来选择 print("按照特定的标签进行") print(df.loc[‘20130102‘])#loc是根据index来选择对应的行 也就是a行还是b行 # 把ab的数据全部弄出来 print("特定列给选出来") print(df.loc[:,[‘a‘,‘b‘]]) print("把某一行的特定列给选出来") print(df.loc[‘20130102‘,[‘a‘,‘b‘]])
结果:
按照特定的标签进行筛选 a 4 b 5 c 6 d 7 Name: 2013-01-02 00:00:00, dtype: int32 特定列给选出来 a b 2013-01-01 0 1 2013-01-02 4 5 2013-01-03 8 9 2013-01-04 12 13 2013-01-05 16 17 2013-01-06 20 21 把某一行的特定列给选出来 a 4 b 5 Name: 2013-01-02 00:00:00, dtype: int32
2.3按第几行(第几列)来进行选择 不管行列都是数字
# 按第几行来选择 print(df.iloc[3])#第三行的数据 iloc是根据数字 也就是第几行来决定索引 print(df.iloc[3:5,1:3])#三到5行 1:3 列
结果:
a 12 b 13 c 14 d 15 Name: 2013-01-04 00:00:00, dtype: int32 b c 2013-01-04 13 14 2013-01-05 17 18
2.4把lable和数字一起结合起来 就是又可以用数字 又可以用lable
# 把lable和第几位一起来筛选 print(df.ix[0:3,[‘a‘,‘c‘]]) print(df.ix[‘20130101‘:‘20130105‘,[‘a‘,‘c‘]])
结果:
a c 2013-01-01 0 2 2013-01-02 4 6 2013-01-03 8 10 a c 2013-01-01 0 2 2013-01-02 4 6 2013-01-03 8 10 2013-01-04 12 14 2013-01-05 16 18
三、是或者否的相关筛选
# 是或者否的筛选 只对比a 然后把其它的给显示出来 # print(df) # a这一列中大于8的 然后把其它的bcd也会显示出来 print(df[df.a>6])
结果
a b c d 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15 2013-01-05 16 17 18 19 2013-01-06 20 21 22 23
原文地址:https://www.cnblogs.com/William-xh/p/9557391.html
时间: 2024-11-02 17:42:04