python_转换为数值类型&map映射&分桶&factorize

网友投稿 325 2022-08-24


python_转换为数值类型&map映射&分桶&factorize

python_类型转换&map映射

Transforming Data Using a Function or Mapping# 利⽤函数或映射进⾏数据转换# 对于许多数据集,你可能希望根据数组、Series或DataFrame列# 中的值来实现转换⼯作。我们来看看下⾯这组有关⾁类的数据data = pd.DataFrame({'food': ['bacon', 'pulled pork', 'bacon', 'Pastrami', 'corned beef', 'Bacon', 'pastrami', 'honey ham', 'nova lox'], 'ounces': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})datafood ounces0 bacon 4.01 pulled pork 3.02 bacon 12.03 Pastrami 6.04 corned beef 7.55 Bacon 8.06 pastrami 3.07 honey ham 5.08 nova lox 6.0meat_to_animal = { 'bacon': 'pig', 'pulled pork': 'pig', 'pastrami': 'cow', 'corned beef': 'cow', 'honey ham': 'pig', 'nova lox': 'salmon'}映射# 使⽤Series的str.lower⽅法,将# 各个值转换为⼩写:lowercased = data['food'].str.lower()lowercased# Series的map⽅法可以接受⼀个函数或含有映射关系的字典型对 映射# 象data['animal'] = lowercased.map(meat_to_animal)datafood ounces animal0 bacon 4.0 pig1 pulled pork 3.0 pig2 bacon 12.0 pig3 Pastrami 6.0 cow4 corned beef 7.5 cow5 Bacon 8.0 pig6 pastrami 3.0 cow7 honey ham 5.0 pig8 nova lox 6.0 salmon# 使用lambda类型映射# 使⽤map是⼀种实现元素级转换以及其他数据清理⼯作的便捷⽅data['food'].map(lambda x: meat_to_animal[x.lower()])# 使用lambda类型映射# 使⽤map是⼀种实现元素级转换以及其他数据清理⼯作的便捷⽅data['food'].map(lambda x: meat_to_animal[x.lower()])

案例二

import pandas as pddf = pd.DataFrame([ ['green', 'M', 10.1, 'class1'], ['red', 'L', 13.5, 'class2'], ['blue', 'XL', 15.3, 'class1']])df.columns = ['color', 'size', 'prize', 'class label']dfcolor size prize class label0 green M 10.1 class11 red L 13.5 class22 blue XL 15.3 class1size_mapping = { 'XL': 3, 'L': 2, 'M': 1}df['size'] = df['size'].map(size_mapping)# df['size_b'] = df['size'].map(size_mapping)dfcolor size prize class label0 green 1 10.1 11 red 2 13.5 02 blue 3 15.3 1ab=enumerate(set(df['class label']))print(ab)# set 去除重复值# enumerate 枚举,增加一列排序值# 然后map映射class_mapping = {label:idx for idx,label in enumerate(set(df['class label']))}df['class label'] = df['class label'].map(class_mapping)dfdfcolor size prize class label size_b0 green 1 10.1 1 11 red 2 13.5 0 22 blue 3 15.3 1 3

案例三,通过pd.factorize 函数

labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'])labelsarray([0, 0, 1, 2, 0], dtype=int64)uniquesarray(['b', 'a', 'c'], dtype=object)labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'], sort=True)labelsarray([1, 1, 0, 2, 1], dtype=int64)>>> labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'], sort=True)>>> labelsarray([1, 1, 0, 2, 1])>>> array(['a', 'b', 'c'], dtype=object)uniquesarray(['a', 'b', 'c'], dtype=object)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:pyhton_绘制支援地图(Python画地图)
下一篇:rabbitmq学习系列教程之消息应答(autoAck)、队列持久化(durable)及消息持久化
相关文章

 发表评论

暂时没有评论,来抢沙发吧~