pandas中iloc,loc取数据差别及按条件取值

Dataframe使用loc取某几行几列的数据:

print(df.loc[0:4,['item_price_level','item_sales_level','item_collected_level','item_pv_level']])

结果如下,取了index为0到4的五行四列数据。

        item_price_level  item_sales_level  item_collected_level  item_pv_level
0                 3                 3                     4             14
1                 3                 3                     4             14
2                 3                 3                     4             14
3                 3                 3                     4             14
4                 3                 3                     4             14

而使用iloc,如下所示:

print(df.iloc[0:4,6:9])

结果如下,取得是index为0到3四行,以及第6到8列(从0列开始)3列数据。

      item_price_level  item_sales_level  item_collected_level
0                 3                 3                     4
1                 3                 3                     4
2                 3                 3                     4
3                 3                 3                     4

另外loc可以按条件取数据:

print(df.loc[df.item_price_level==0,:])
print(df.loc[df[item_price_level]==0,:])

上面两条语句效果是一样的,都是取item_price_level为0的所有数据。可以把冒号改成几列列名,只取满足条件的某几列数据:

print(df.loc[df['item_price_level']==0,['item_price_level','item_sales_level']])

结果前两行如下:

           item_price_level  item_sales_level
129141                 0                10
129142                 0                10

条件为多个时 (同时满足两个条件如下):

print(df.loc[(item_price_level==0) & (item_sales_level==3),:])

 

阅读更多

没有更多推荐了,返回首页