先来看个数据

df = 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]})

print(df)

利用函数或映射进行数据转换 (map)

 

需求, 你想要添加一列表示该肉类食物来源的动物类型。 我们先编写一个肉类到动物的映射:

meat_to_animal = {
    "bacon": "pig",
    "pulled pork": "pig",
    "pastrami": "cow",
    "corned beef": "cow",
    "honey ham": "pig",
    "nova lox": "salmon"
}

Series的map方法可以接受一个函数或含有映射关系的字典型对象, 但是这里有一个小问题, 即有些肉类

的首字母大写了, 而另一些则没有。因此, 我们还需要将各个值转换为小写:

各种方法:

df = 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]})

print(df)

meat_to_animal = {
    "bacon": "pig",
    "pulled pork": "pig",
    "pastrami": "cow",
    "corned beef": "cow",
    "honey ham": "pig",
    "nova lox": "salmon"
}
# df['animal'] = df['food'].map(str.lower).map(meat_to_animal)
# print(df)
# df['animal'] = df['food'].map(meat_to_animal)
# print(df)
df1 = df['food'].map(str.lower).map(meat_to_animal)
print(df1)

print("-----------------------")
df3 = df["food"].map(lambda x:meat_to_animal[x.lower()])
print(df3)

print('---------------------') #此方法得到的是key, 不是value了, 特此表明
df2 = df["food"].map(lambda x:x.lower(), meat_to_animal)
print(df2)

 还要个方法, 替换值

 

df = 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]})

print(df)

meat_to_animal = {
    "bacon": "pig",
    "pulled pork": "pig",
    "pastrami": "cow",
    "corned beef": "cow",
    "honey ham": "pig",
    "nova lox": "salmon"
}
df['ounces'] = df['food'].map(str.lower).map(meat_to_animal)
print(df)
View Code

相关文章:

  • 2021-06-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-16
  • 2022-12-23
  • 2022-12-23
  • 2021-07-27
猜你喜欢
  • 2022-12-23
  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-20
  • 2022-12-23
相关资源
相似解决方案