文章目录

  • 重命名轴索引
  • 离散化连续数据
  • 哑变量处理类别型数据

重命名轴索引

rename(
self,
mapper: Optional[Renamer] = None,
*,
index: Optional[Renamer] = None,
columns: Optional[Renamer] = None,
axis: Optional[Axis] = None,
copy: bool = True,
inplace: bool = False,
level: Optional[Level] = None,
errors: str = “ignore”,
)

上述方法中常用参数表示的含义如下:

  1. index,columns:表示带转换的行索引和列索引
  2. axis:表示轴的名称,可以使用index或columns,也可以使用数字0或1
  3. copy:表示是否复制底层的数据,默认为False
  4. inplace:默认为False,表示是否返回新的Pandas对象。如果设为True,则会忽略复制的值。
  5. level:表示级别名称,默认为None。对于多级索引,只重命名指定的标签。

代码:

df = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']})
print("df:\n", df)
print("df.rename:\n", df.rename(columns={'A': 'a', 'B': 'b', 'C': 'c'}))

输出结果:

df:A    B    C
0  1    9    x
1  2  -80  5.9
2  4  5.3    0
df.rename:a    b    c
0  1    9    x
1  2  -80  5.9
2  4  5.3    0

以上也可以根据str中提供的使字符串变成小写的功能函数lower()来重命名索引的名称,无需再使用字典逐个进行替换。

代码:

print("df.rename(str.lower, axis=1):\n", df.rename(str.lower, axis=1))

输出结果:

df.rename(str.lower, axis=1):a    b    c
0  1    9    x
1  2  -80  5.9
2  4  5.3    0

也可以对行索引进行重命名

代码:

print("df.rename(index={1: 'a'}):\n", df.rename(index={1: 'a'}))

输出结果:

df.rename(index={1: 'a'}):A    B    C
0  1    9    x
a  2  -80  5.9
2  4  5.3    0

离散化连续数据

cut(
x,
bins,
right: bool = True,
labels=None,
retbins: bool = False,
precision: int = 3,
include_lowest: bool = False,
duplicates: str = “raise”,
)

上述函数中常用参数表示的含义如下:

  1. x:表示要分箱的数组,必须是一维的
  2. bins:接收int和序列类型的数据。如果传入的是int类型的值,则表示在x范围内的等宽单元的数量(划分为多少个等间距区间);如果传入的是一个序列,则表示将x划分在指定的序列中,若不在此序列中,则为NaN。
  3. right:是否包含右端点,决定区间的开闭,默认为True
  4. labels:用于生成区间的标签
  5. retbins:是否返回bin
  6. precision:精度,默认保留三位小数
  7. include_lowest:是否包含左端点

cut()会返回一个Catagorical对象,我们可以将其看作一组表示面元名称的字符串,它包含了分组的数量以及不同分类的名称。


代码:

ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 32]
bins = [0, 18, 25, 35, 60, 100]
print("pd.cut(ages, bins):\n", pd.cut(ages, bins))

输出结果:

pd.cut(ages, bins):[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (35, 60], (25, 35], (60, 100], (35, 60], (25, 35]]Length: 11
Categories (5, interval[int64]): [(0, 18] < (18, 25] < (25, 35] < (35, 60] < (60, 100]]

Catagorical对象中的区间范围默认设置为左开右闭区间,如果希望设置左闭右开区间,则可以在调用cut()函数时传入right=False进行修改。

测试对象:

df = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']})

代码:

print("pd.cut(df['B']):\n",
pd.cut(df['B'].astype(dtype='float'), bins, right=False))

输出结果:

pd.cut(df['B']):0    [0.0, 18.0)
1            NaN
2    [0.0, 18.0)
Name: B, dtype: category
Categories (5, interval[int64]): [[0, 18) < [18, 25) < [25, 35) < [35, 60) < [60, 100)]

哑变量处理类别型数据

哑变量又称虚拟变量、名义变量,从名称上看就知道,它是人为虚设的变量,用来反映某个变量的不同类别。使用哑变量处理类别转换,事实上就是将分类变量转换为哑变量矩阵或指标矩阵,矩阵的值通常用“0”或“1”表示。

在Pandas中,可以使用get_dummies()函数对类别特征进行哑变量处理。

get_dummies(
data,
prefix=None,
prefix_sep="_",
dummy_na=False,
columns=None,
sparse=False,
drop_first=False,
dtype=None,
)

上述函数中常用参数表示的含义如下:

  1. data:可接受数组、DataFrame或Series对象,表示哑变量处理的数据
  2. prefix:表示列名的前缀,默认为None
  3. prefix_sep:用于附加前缀作为分隔符使用,默认为“_”
  4. dummy_na:表示是否为NaN值添加一列,默认为False
  5. columns:表示DataFrame要编码的列名,默认为None
  6. sparse:表示虚拟列是否是稀疏的,默认为False
  7. drop_first:是否通过从k个分级类别中删除第一个级来获得k-1个分类级别,默认为False

测试对象:

df = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']})

代码:

test1 = df['B'].astype(dtype='float')
print(pd.get_dummies(test1, prefix='col', prefix_sep='_'))

输出结果:

   col_-80.0  col_5.3  col_9.0
0          0        0        1
1          1        0        0
2          0        1        0

Python之数据转换——【rename()方法、cut()函数、get_dummies()函数】相关推荐

  1. Python生成器的send方法、递推函数、匿名函数及常用内置函数

    1.生成器的send方法 在使用yield方法创建生成器时,不仅可以使用next方法进行取值,还可以通过send方法向生成器的内部传值 1.1 什么是send方法? send方法相当于高级的next方 ...

  2. Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略

    Python之pandas:pandas的get_dummies函数简介(将分类变量转为哑变量)及其使用方法之详细攻略 目录 pandas的get_dummies函数简介 pandas.get_dum ...

  3. python内置方法就是内置函数_python内置函数

    什么是内置函数? 就是python给你提供的,拿来直接用的函数, 比如print 和 input等等. 截止到python版本3.6.2 python一共提供了68个内置函数. 他们就是python直 ...

  4. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

  5. Python编程语言学习:sklearn.manifold的TSNE函数的简介、使用方法、代码实现之详细攻略

    Python编程语言学习:sklearn.manifold的TSNE函数的简介.使用方法.代码实现之详细攻略 目录 Manifold简介 TSNE简介-数据降维且可视化 TSNE使用方法 TSNE代码 ...

  6. Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...

  7. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略

    Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...

  8. Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略 目录 sklearn中的RobustScaler 函数的简介及使用方法 sklearn中的R ...

  9. Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能

    Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...

最新文章

  1. [转] GMT、UTC与24时区 等时间概念
  2. 邬贺铨:5G资费便宜10倍 WiFi覆盖更为重要
  3. 成功解决利用pandas输出DataFrame格式数据表时没有最左边的索引编号(我去,这个问题折腾了我半个多小时)
  4. simple java mail
  5. 用宏定义写出swap(x,y)
  6. Skywalking-12:Skywalking SPI机制
  7. strcpy vs memcpy
  8. python通过什么对象连接数据库_干货!python与MySQL数据库的交互实战
  9. 大学计算机在线阅读,大学计算机
  10. android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
  11. 教你用Python轻松批量获取快手无水印视频以及详细信息!(侵权删)
  12. oracle四大索引类型,各种Oracle索引类型介绍
  13. 为啥OpenStack厂商要参加双态运维大会?
  14. 烽火fr2600怎么web登录_烽火配置教程
  15. 宠物商店mysql数据库设计_宠物商城数据库设计
  16. 《易经》里的28条法则与64个大智慧
  17. Py之shap:shap库的简介、安装、使用方法之详细攻略
  18. 【Linux】解决Centos软件安装源出错
  19. APP上架到各大应用商店指南
  20. match和search的区别

热门文章

  1. node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库)
  2. 允许使用抽象类类型 isearchboxinfo 的对象_此对象非彼对象(面向对象)3
  3. 12306加密传输_三大运营商发5G消息白皮书:短消息服务升级,支持加密传输
  4. 计算机图形学在线作业,电子科技16秋《计算机图形学》在线作业3 辅导资料
  5. html中怎么写jq,用jQuery替换HTML页面中的文本
  6. ashx连接mysql_对C#中的web访问mysql数据库的一些知识点进行了整理归纳总结
  7. 【转】DICOM的常用Tag分类和说明
  8. 【转】使用PowerApps快速构建基于主题的轻业务应用 —— 入门篇
  9. SharePoint学习札记[2] — MOSS2007体系结构概述
  10. asp.net mvc webform和razor的page基类区别