Pandas选取数据

在Pandas中选取数据主要是通过 df.loc 与 df.iloc 两种方式,这两种方式的用法如下:

  1. 在知道列名字的情况下,可以通过df.loc[row_index, column_name] 来定位数据
  2. 在 column_name 特别长或者index是时间序列等各种不方便输入的情况下,可以用df.iloc (其中的i即是index之意), df.iloc允许使用数字来定位,其用法为 iloc[row_index, column_index]
  3. df.ix 已经成为deprecated,不推荐使用

下面就通过 ml-100k 中的 u.data 数据为例说明:

import pandas as pd
dataPath = u'D:/datas/ml-100k/u.data'

df = pd.read_csv(dataPath, sep='\t', header=None, names=['user_id', 'item_id', 'rating', 'timestamp'])

# 选取第 0 行
print(df.loc[0])

# 选取第 0 行,第 user_id 列
print(df.loc[0, 'user_id'])

# 选取第 2、3 两行,第 user_id、item_id 两列
print(df.loc[[2,3],['user_id','item_id']])

# 选取前100行
print(df[0:100])

# 选取前100行,并且 user_id, item_id 两列
print(df.loc[:100,['user_id', 'item_id']])

# 选取满足 df.user_id > 500 的行,第 user_id 列
print(df.loc[df['user_id'] > 500, 'user_id'])
print(df.loc[df.user_id > 500, 'user_id'])

# 选取满足 df.user_id > 500 的行,第 user_id,  item_id两列
print(df.loc[df['user_id'] > 500, ['user_id', 'item_id']])
print(df.loc[df.user_id > 500, ['user_id', 'item_id']])

同理,在使用 df.iloc 时,在 column_index 位置可以使用 数字,列表,切片,布尔值等方式来选择。

你可能感兴趣的:(Pandas选取数据)