Qas*_*wed 5 regex dictionary key python-3.x pandas
我有一个带有要映射的变量的DataFrame,使用的字典中的键不是“普通”字符串,而是正则表达式。
import pandas as pd
import re
df = pd.DataFrame({'cat': ['A1', 'A2', 'B1']})
Run Code Online (Sandbox Code Playgroud)
我想做的是df['cat'].map({'A\d': 'a', 'B1': 'b'}),但A\d似乎没有被解释为正则表达式。我可以用这种简单的MWE做df['cat'].map({'A1': 'a', 'A2': 'a', 'B1': 'b'}),但是在现实世界中,正则表达式要复杂得多。另外,字典要复杂得多,因此这里的解决方案(需要添加开始和结束语句并re.compile在键周围应用)是不可行的。
replace与使用regex=Truemap需要一个可调用的。当你传递一个字典时,它会将字典替换为lambda x: your_dict.get(x, x). replace适合您的目的。
df.replace({'A\d': 'a', 'B1': 'b'}, regex=True)
cat
0 a
1 a
2 b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31 次 |
| 最近记录: |