对pandas的行列名更改与数据选择详解

作者:bigbig大点点 时间:2022-06-09 15:46:37 

记录一些pandas选择数据的内容,此前首先说行列名的获取和更改,以方便获取数据。此文作为学习巩固。

这篇博的内容顺序大概就是: 行列名的获取 —> 行列名的更改 —> 数据选择

一、pandas的行列名获取和更改

1. 获取: df.index() df.columns()

首先,举个例子,做一个DataFrame如下:


>>>import pandas as pd
>>>import numpy as np
>>>data = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})
>>>data

对pandas的行列名更改与数据选择详解

设置了列索引为 abc,行索引是自动生成的,也可以设置


>>>data.index = ['A','B','C']
>>>data

对pandas的行列名更改与数据选择详解

以下的做法都以这个 data 作为数据举例

接下来就可以获取索引了,index-行索引,columns-列索引


>>>data.index

对pandas的行列名更改与数据选择详解


>>>data.columns

对pandas的行列名更改与数据选择详解

2. 修改,看到有很多方法,这里推荐一种比较灵活好用的方法


df.rename(index={ }, columns={ }, inplace=True)
>>>data.rename(index={'A':'D', 'B':'E', 'C':'F'}, columns={'a':'d', 'b':'e', 'c':'f'}, inplace = True)
>>>data

对pandas的行列名更改与数据选择详解

说明3点:

1. index和columns无关,可以分别指定,也就是说,可以只修改行索引,那么rename()中只写index

2. 索引可以任意挑选,如此处,index={'A':'D', 'C':'F'} 则只改A和C,columns同样

3. inplace=True, 在原dataframe上改动

二、pandas的数据选择

1. 直接用索引选(不灵活、不推荐) df[ ]

1) 选择‘a'列


>>>data['a']

对pandas的行列名更改与数据选择详解

注意:

1. 这样取出的数据类型为 Series

2. 这种方法只能取出一列,不能用数字下标,不能多选或片选, data['a','b'] , data['a':'c'] , data[0]

2)选择'A','B'行


>>>data['A':'B']
>>>data[0:2] # 两种方法同一结果

对pandas的行列名更改与数据选择详解

注意:

1. 这样取出的数据类型为 DateFrame

2. 这种方法只能用于片选行,可以用数字下标,不能单独取,即 data['A'] , data['A','B'] , data[1]

2.使用 .loc(推荐) df.loc(),()内参数先行后列,区别行列的取法

1) 取列:


>>>data.loc[:,['a','c']] #图1 需要行全取,再对应指定列

2)取行:


>>>data.loc[['A','B']] #图2 直接指定行

3)取行列交叉值:


>>>data.loc[['A'],['b','c']] #图3

对pandas的行列名更改与数据选择详解

注意:

1. 区别 df.iloc()

.loc() —— 使用标签 label 作为索引取值

.iloc() —— 使用整数下标 index 作为索引取值,如上面三句可以换成以下三句,输出数据类型有不同


>>>data.iloc[:,[0,2]] # DataFrame
>>>data.iloc[[0,1]] # DataFrame
>>>data.iloc[0,[1,2]] # Series

2. 对于 数字类型的变量,可以使用bool 选取行,列不能用bool,如


>>>data.loc[data.b>5] # DataFrame

对pandas的行列名更改与数据选择详解


>>>data.loc[data.b>5,['c']] #DataFrame 输出为9位置的frame
>>>data.iloc[data.b.values>5,[2]] #DataFrame 输出同上,需要有 .values取值

3. .ix[ ] 可以混用label和index,位置使用同 .loc[ ] .iloc[ ]

来源:https://blog.csdn.net/zhang_diandian/article/details/79903592

标签:pandas,行列名,更改
0
投稿

猜你喜欢

  • 怎样在GoDaddy-Linux主机上使用JSP连接到MySQL数据库

    2010-04-21 12:38:00
  • python求绝对值的三种方法小结

    2023-04-17 19:57:09
  • 使用xmlhttp为网站增加股市行情查询功能

    2007-10-10 21:09:00
  • Pandas对每个分组应用apply函数的实现

    2022-01-26 04:02:00
  • Python实现简单状态框架的方法

    2022-08-20 14:13:44
  • pandas基于时间序列的固定时间间隔求均值的方法

    2022-05-22 11:44:38
  • go各种import的使用方法讲解

    2024-05-02 16:25:32
  • MySQL如何清空慢查询文件

    2024-01-17 07:45:37
  • SQL Server中查询结果超出了查询时间范围解决方法

    2024-01-18 04:05:54
  • Python Series从0开始索引的方法

    2021-07-17 19:20:38
  • 在ORACLE移动数据库文件

    2010-08-02 12:54:00
  • Linux添加Python path方法及修改环境变量的三种方法

    2021-03-26 12:22:45
  • Python中实现一行拆多行和多行并一行的示例代码

    2021-05-20 12:32:26
  • python中wx将图标显示在右下角的脚本代码

    2022-10-27 02:26:53
  • Python程序设计入门(2)变量类型简介

    2021-09-28 14:51:18
  • python静态web服务器实现方法及代码详解

    2023-01-13 17:17:12
  • 利用Python中SocketServer 实现客户端与服务器间非阻塞通信

    2021-05-07 00:16:38
  • Python变量和字符串详解

    2023-08-23 02:59:49
  • Python的@property的使用

    2021-03-27 11:02:25
  • 有效网页表单的八条规则[译]

    2009-06-01 10:29:00
  • asp之家 网络编程 m.aspxhome.com