美文网首页
Pandas选取数据

Pandas选取数据

作者: yepeng05 | 来源:发表于2018-10-09 16:20 被阅读0次

    在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选取数据

          本文链接:https://www.haomeiwen.com/subject/btcyaftx.html