我尝试使用lambda将字典Map到pandas系列。它不是将值Map到系列'Food',而是返回整个字典。我知道我需要修改lambda函数,但不知道如何修改。
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]})
food_to_animal = {'bacon': 'pig', 'pulled pork': 'pig', 'pastrami': 'cow', 'corned beef': 'cow', 'honey ham': 'pig', 'nova lox': 'salmon'}
data['food'].map(lambda x: food_to_animal)
字符串
输出值:
0 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
1 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
2 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
3 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
4 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
5 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
6 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
7 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
8 {'bacon': 'pig', 'pulled pork': 'pig', 'pastra...
Name: food, dtype: object
型
预期输出:
0 pig
1 pig
2 pig
3 cow
4 cow
5 pig
6 cow
7 pig
8 salmon
型
4条答案
按热度按时间nwo49xxi1#
这是将数字Map到日期名称的精确解决方案。'timeStamp'是包含日期的列,如2015-12-10 17:40:00*
字符串
wribegjk2#
这段代码应该对你有用:
字符串
如果不将
data.food
调整为lowercase
,则会得到KeyError
要防止此错误,可以使用
defaultdict
kg7wmglp3#
请尝试将
df.food
值设置为lower case
和map
字典字符串
和一列
型
ztmd8pv54#
事实上,你不需要lambda。Panda的
replace
知道如何使用字典。只要确保键的大小写正确:字符串
P.S.:
map
+lambda
的工作速度比replace
或map
+字典快2倍。