【发布时间】:2021-11-22 04:15:45
【问题描述】:
我正在尝试使用 Pandas map 为键分配值,如果 DataFrame 中的条目以某个字符开头,则键将是返回的字符串。
使用 Pandas 文档中的示例,使用以下 DataFrame 和我的代码:
import numpy as np
import pandas as pd
s = pd.Series(['cat', 'dog', np.nan, 'rabbit'])
s.map({ lambda x: x if x.startswith('c') else None: 'kitten',
lambda x: x if x.startswith('d') else None: 'puppy',
lambda x: x if x.startswith('r') else None: 'bunny',
})
预期结果:
0 kitten
1 puppy
2 NaN
3 bunny
dtype: object
目前,我的代码返回 4 个NaN 值。我指定startswith 因为我并不总是能够知道我的DataFrame 中字符串的最后一个字符,但我知道第一个字符。任何帮助将不胜感激。
【问题讨论】:
-
@jezrael 抱歉,我刚决定接受神罗的回答。如果您愿意,我可以将您的答案标记为正确的。
-
@Suva23 你应该选择作为已接受的真正解决了你问题的答案。我个人认为他的回答显示了对熊猫的更好理解,这也是我会选择的。
标签: python pandas string dictionary