首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从栏中找到的内容自动填写大熊猫中的行?

如何从栏中找到的内容自动填写大熊猫中的行?
EN

Stack Overflow用户
提问于 2018-01-02 12:09:38
回答 1查看 268关注 0票数 0

在Python3和熊猫都有关于食物特性的几十个专栏和行的数据。以下是一个摘要:

代码语言:javascript
复制
alimentos = pd.read_csv("alimentos.csv",sep=',',encoding = 'utf-8')
alimentos.reset_index()
index   alimento    calorias
0   0   iogurte     40
1   1   sardinha    30
2   2   manteiga    50
3   3   maçã        10
4   4   milho       10

"alimento“(食品)栏有"iogurte”、"sardinha“、"manteiga”、“ma are”和"milho“等字样,这些都是食品名称。

我需要在这个dataframe中创建一个新的专栏,它将告诉我们是什么样的食物。我给你起了个名字叫“分类卡考”

代码语言:javascript
复制
alimentos['classificacao'] = ""
alimentos.reset_index()
index   alimento    calorias    classificacao
0   0   iogurte     40  
1   1   sardinha    30  
2   2   manteiga    50  
3   3   maçã        10  
4   4   milho       10 

根据在"alimento“列中找到的内容,我希望自动填充"classificacao”列的行

例如,当找到"iogurte“时,填充-> "laticinio”。当找到“撒丁岛”-> "peixe“。通过找到"manteiga“->”哥杜拉动物“。当找到“maã”->“子”时。通过找到"milho“->”谷物“

请问,当我找到这些字符串时,是否有一种自动填充行的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-02 13:02:47

如果您对"alimento“列中的所有可能值进行了映射,则只需创建一个字典并使用.map(d),如下所示:

代码语言:javascript
复制
df = pd.DataFrame({'alimento': ['iogurte','sardinha', 'manteiga', 'maçã', 'milho'],  
                   'calorias':range(10,60,10)})

d = {"iogurte":"laticinio", "sardinha":"peixe", "manteiga":"gordura animal", "maçã":"fruta", "milho": "cereal"}

df['classificacao'] = df['alimento'].map(d)

然而,在现实生活中,我们通常不能把所有的东西都映射成一个小块(因为异常值出现在一个蓝月,错误的输入等),在这种情况下,上面的内容将返回“分类”列中的NaN。这可能会导致一些问题,因此请考虑设置默认值,如“其他”或“未知”。要做到这一点,只需在.fillna("Other")后面添加map(d)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48060754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档