Pandas读取行列数据最全方法
作者:Sunshine168 发布时间:2022-06-23 09:34:22
1、读取方法有按行(单行,多行连续,多行不连续),按列(单列,多列连续,多列不连续);部分不连续行不连续列;按位置(坐标),按字符(索引);按块(list);函数有 df.iloc(), df.loc(), df.iat(), df.at(), df.ix()。
2、转换为DF,赋值columns,index,修改添加数据,取行列索引
data = {'省份': ['北京', '上海', '广州', '深圳'],
'年份': ['2017', '2018', '2019', '2020'],
'总人数': ['2200', '1900', '2170', '1890'],
'高考人数': ['6.3', '5.9', '6.0', '5.2']}
df = pd.DataFrame(data, columns=['省份', '年份', '总人数', '高考人数', '高数'],
index=['one', 'two', 'three', 'four'])
df['高数'] = ['90', '95', '92', '98']
print("行索引:{}".format(list(df.index)))
print("列索引:{}".format(list(df.columns)))
print(df.index[1:3])
print(df.columns[1])
print(df.columns[1:3])
print(df)
行索引:['one', 'two', 'three', 'four']
列索引:['省份', '年份', '总人数', '高考人数', '高数']
Index(['two', 'three'], dtype='object')
年份
Index(['年份', '总人数'], dtype='object')
省份 年份 总人数 高考人数 高数
one 北京 2017 2200 6.3 90
two 上海 2018 1900 5.9 95
three 广州 2019 2170 6.0 92
four 深圳 2020 1890 5.2 98
3、iloc不能通过[:, [1:3]]取连续数据,取连续数据只能通过 df[df.columns[1:4]],先获取列索引,再取数据。
print(df['省份']) #按列名取列
print(df.省份) #按列名取列
print(df[['省份', '总人数']]) #按列名取不连续列数据
print(df[df.columns[1:4]]) #按列索引取连续列数据
print(df.iloc[:, 1]) #按位置取列
print(df.iloc[:, [1, 3]]) #按位置取不连续列数据
one 北京
two 上海
three 广州
four 深圳
Name: 省份, dtype: object
one 北京
two 上海
three 广州
four 深圳
Name: 省份, dtype: object
省份 总人数
one 北京 2200
two 上海 1900
three 广州 2170
four 深圳 1890
年份 总人数 高考人数
one 2017 2200 6.3
two 2018 1900 5.9
three 2019 2170 6.0
four 2020 1890 5.2
one 2017
two 2018
three 2019
four 2020
Name: 年份, dtype: object
年份 高考人数
one 2017 6.3
two 2018 5.9
three 2019 6.0
four 2020 5.2
4、通过df.iloc[](数字)取行数据,取部分行部分列时,要先写行,再写列;有条件的取数据
print(df[1:3]) #按行取数据,这行代码结果没在下面输出
print(df[df.高数>90]) #按行有条件的取数据,结果没输出
print(df.iloc[1]) #按行取行数据
print(df.iloc[1, 3]) #按坐标取
print(df.iloc[[1], [3]]) #按坐标取
print(df.loc[df.index[1:3]]) #按行索引取行,但没必要
print(df.iloc[1:3]) #按行取连续数据
print(df.iloc[[1, 3]]) 按行取不连续数据
print(df.iloc[[1,2,3], [2,4]]) 取部分行部分列数据
省份 上海
年份 2018
总人数 1900
高考人数 5.9
高数 95
Name: two, dtype: object
5.9
高考人数
two 5.9
省份 年份 总人数 高考人数 高数
two 上海 2018 1900 5.9 95
three 广州 2019 2170 6.0 92
省份 年份 总人数 高考人数 高数
two 上海 2018 1900 5.9 95
three 广州 2019 2170 6.0 92
省份 年份 总人数 高考人数 高数
two 上海 2018 1900 5.9 95
four 深圳 2020 1890 5.2 98
总人数 高数
two 1900 95
three 2170 92
four 1890 98
5、通过df.loc[]索引(字符)取行数据。
print(df.loc['two'])
print(df.loc['two', '省份'])
print(df.loc['two':'three'])
print(df.loc[['one', 'three']])
print(df.loc[['one', 'three'], ['省份', '年份']])
省份 上海
年份 2018
总人数 1900
高考人数 5.9
高数 95
Name: two, dtype: object
上海
省份 年份 总人数 高考人数 高数
two 上海 2018 1900 5.9 95
three 广州 2019 2170 6.0 92
省份 年份 总人数 高考人数 高数
one 北京 2017 2200 6.3 90
three 广州 2019 2170 6.0 92
省份 年份
one 北京 2017
three 广州 2019
6、ix,iat,at取行列数据,此方法不常用,可以使用上面方法即可。
print(df.ix[1:3])
print(df.ix[:, [1, 3]])
print(df.iat[1,3])
print(df.at['two', '省份'])
省份 年份 总人数 高考人数 高数
two 上海 2018 1900 5.9 95
three 广州 2019 2170 6.0 92
年份 高考人数
one 2017 6.3
two 2018 5.9
three 2019 6.0
four 2020 5.2
5.9
上海
来源:https://www.cnblogs.com/wynlfd/p/14024947.html


猜你喜欢
- 读取Web.config中设置 Conn = new SqlConnect
- 前段时间公司数据库服务器崩溃启动不起来,经过我初步排查是/home目录挂载不上导致启动不起来,虽然通过注释/etc/fstab中的挂载信息,
- 本文实例介绍了javascript实现九宫格相加数值相等的对应方法,分享给大家供大家参考,具体内容如下实现思路:1、每个格子输入的数值必须为
- 从PDF读取文本内容和从已经有的文档生成新的PDF。需要用到的模块是PyPDF2.mstamy2/PyPDF2: A utility to
- 事件类型: 错误 事件来源: Service Control Manager 事件种类: 无 事件 ID: 7034 日期: 2012-11
- 1. 问题截图:(8000端口被占用)2. 第一种是可能会打开了多个运行窗口右键关闭即可:3. 第二种是在你运行python的主机上查询出p
- a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb
- 我的电脑环境是使用.net framework4.5.1,如果在调试过程中调不通请注意我用的是Visual studion 2017,pyt
- 1.什么是ORMORM 全拼Object-Relation Mapping.中文意为 对象-关系映射.在MVC/MVT设
- 在论坛和聊天室这样的场景里,为了保证用户体验,我们经常需要屏蔽很多不良词语。对于单个关键词查找,自然是indexOf、正则那样的方式效率比较
- 一、图像直方图1.1 定义图像直方图是图像的基本属性之一,也是反映图像像素数据分布的统计学特征,其横坐标代表了图像像素点在[0,255]范围
- 本文用163邮箱进行了测试,python用的是3.8版本进行的测试1.设置邮箱,如下图所示2.设置过程如下图所示:设置完成后,添加如下代码:
- 前言np.linalg.norm()用于求范数,linalg本意为linear(线性) + algebra(代数),norm则表示范数。用法
- 这个类主要解决在类型转换时,如果直接使用类型转换函数,会因为变量为空或者格式不对而导致程序报错,而这种报错在大多数情况下是允许的.例如要转换
- 背景:准备给长辈买个手机,有关手机大小,网购平台基本只有手机尺寸和分辨率的文本数据,因而对手机屏幕大小没有直观感受,虽然网上有比较手机大小的
- 本文实例为大家分享了vue-Split实现面板分割的具体代码,供大家参考,具体内容如下<template> <
- 1)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2)应尽量避免在 where 子
- 绑定的值与规则指定的值一定要相同-------第一步:<el-form :model="ruleForm" :ru
- 参数数量及其作用该函数共有五个参数,分别是:被赋值的变量 ref要分配给变量的值 value、是否验证形状 validate_shape是否
- JSON简介JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集