python-根据差异过滤数据框分为两个系列,一个通过字典映射

我有我的字典

d = {'A':1, 'B':2, 'C':3}

和我的数据框

df =pd.DataFrame({
"col1": ["A", "B", "C"],
"col2": [1, 2, 3],
"col3": [2, 1, 4] })

我搜索以比较df中的每个值与字典中的对应值.如果匹配,则保留该值,否则将丢弃该值.

我尝试

m = df['col2'] >= d[df['col1']]
df.where(m, df, other = "")

但是它会得到m的错误代码:TypeError:“系列”对象是可变的,因此无法进行哈希处理…

谢谢您的帮助.

解决方法:

使用Apply创建一个新列进行比较

df[‘dict_col’] = df[‘col1’].apply(lambda k: d[k])

m = df[‘dict_col’] >= df[‘col2’]

df[‘col2’] = df[‘col2’].where(m, df, other = "")
上一篇:使用索引满足MySQL条件


下一篇:php-MySQL命令删除表的所有非主索引