Pandas_DataFrame查看数据

一.根据列名加载数据

  • 查看一列数据

    • df[‘列名’]
    # 导入数据库
    import pandas as pd
    # 加载tsv文件数据
    df = pd.read_csv('gapminder.tsv', sep='\t')
    # 输出DataFrame数据的一列
    print(df['country'])
    
  • 查看多列数据

    • df[[‘列名1’,‘列名2’,…]]
    # 获取列名为country和continent的数据
    print(df[['country', 'continent']])
    

二.根据行加载数据

  • 打印数据的前五行
    • DataFrame.head()
    # 获取数据的前五行
    print(df.head())
    # 获取数据的第一行
    print(df.head(1))
    
  • 通过行索引获取数据
    • df.iloc[n]
    # 获取第一行数据
    print(df.iloc[0])
    # 获取第5行数据
    print(df.iloc[4])
    # 获取最后一行数据
    print(df.iloc[-1])
    
  • 获取数据的后五行
    • DataFrame.tail()
    # 获取后五行数据
    print(df.tail())
    # 获取最后一行数据
    print(df.tail(1))
    
  • 通过多个索引获取多行数据
    • DataFrame.iloc[index1, index2…]
    # 获取第2行、第6行、第100行的数据
    print(df.iloc[[1, 5, 99]])
    
  • 获取指定区间的多行数据
    • DataFrame.iloc[开始索引:结束索引:间隔]
    # 获取从第11行到20行的数据
    print(df.iloc[10:21])
    # 获取从第11行到20行的数据,间隔为2
    print(df.iloc[10:21:2])
    # 获取前三行数据
    print(df.iloc[:3])
    # 获取后三行数据
    print(df.iloc[-3:])
    
  • 根据行序号的值获取单行数据
    • DataFrame.loc[行序号]
    # 获取行序号为10的数据
    print(df.loc[10])
    # 获取最后一行的数据
    n = len(df)
    print(df.loc[n-1])
    
  • 通过多个索引获取多行数据
    DataFrame.loc[index1, index2…]
    # 获取第2行、第6行、第100行的数据
    print(df.loc[[1, 5, 99]])
    

三.iloc和loc的区别

  • iloc传入的是索引的序号(行索引下标),loc是索引的标签(行索引的值);
  • 并不是所有情况下索引标签=索引序号;
  • iloc : 通过行索引的下标获取行数据
  • loc : 通过行索引的值获取行数据
  • 值切片的原则是左闭右也闭,下标切片的原则是左闭右开

三.根据行和列获取指定范围的数据

  • 使用iloc和loc获取单个数据
    • DataFrame.iloc[[行索引下标],[列索引下标]]
    • DataFrame.iloc[行索引下标,列索引下标]
    • DataFrame.loc[[行索引值],[列索引值]]
    • DataFrame.loc[行索引值,列索引值]
    # 返回第一行第一列的数据(返回值为DataFrame形式)
    print(df.iloc[[0], [0]])
    # 返回第一行第一列的数据(返回值为str类型)
    print(df.iloc[0, 0])
    # 获取第一行,列索引值为country的数据(返回值为DataFrame类型)
    print(df.loc[[0], ['country']])
    # 获取第一行,列索引之为country的数据(返回值为str类型)
    print(df.loc[0, 'country'])
    
  • 使用iloc和loc获取指定范围内的数据
    • DataFrame.iloc[[行索引], [列索引]]
    • DataFrame.loc[[行序号],[列序号]]
    # 获取行索引为1、3、5,列序号为2、3、4的数据
    print(df.iloc[[1, 3, 5], range(2,5)])
    # 获取行序号为0、99、999,列序号为country和lifeExp的数据
    print(df.loc[[0, 99, 999], ['country', 'lifeExp']])
    # 获取行序号为1、3、5,列序号为country和lifeExp的数据
    print(df.loc[1:5:2,['country', 'lifeExp']])
    # 获取第1、3、5行,第1、3、5列的数据
    print(df.iloc[1:6:2,1:6:2])
    # 取出行序号为year和pop的列(返回值为DataFrame)
    print(df.loc[:,['year', 'pop']])
    # 取出行索引为2和4和-1的数据(返回值为DataFrame)
    print(df.iloc[:, [2, 4, -1]])
    # 取出前五列数据
    print(df.iloc[:, range(5)])
    # 取出第4列到第6列的数据
    print(df.iloc[:, 3:6])
    
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值