在Python3和熊猫都有关于食物特性的几十个专栏和行的数据。以下是一个摘要:
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中创建一个新的专栏,它将告诉我们是什么样的食物。我给你起了个名字叫“分类卡考”
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“->”谷物“
请问,当我找到这些字符串时,是否有一种自动填充行的方法?
发布于 2018-01-02 13:02:47
如果您对"alimento“列中的所有可能值进行了映射,则只需创建一个字典并使用.map(d),如下所示:
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)。
https://stackoverflow.com/questions/48060754
复制相似问题