当前位置: 首页 > 知识库问答 >
问题:

熊猫错误: isin()得到了一个意外的关键字参数'case'

暴乐邦
2023-03-14

我有以下代码,其中包括一个具有各种资本化的列表。我想使用case=False将Pandas代码设置为忽略区分大小写,但是我的代码触发了以下错误:

TypeError:isin()获得意外的关键字参数“case”

import pandas as pd

simple_upstream_types = ("Single rate",
                             "Single rate 2",
                            )


raw_df_simple = raw_df.loc[raw_df['upstream_rate_type'].isin([simple_upstream_types], case=False)]

你能帮忙吗

共有3个答案

巫马山
2023-03-14

这是另一种方法。使用numpywhere,创建一个比较类型列表和列值(小写)的新列。然后创建一个新列,说明它是匹配还是不匹配。请参见下面的模型:

import pandas 
import numpy as np
df = pd.DataFrame({'UpstreamTypes': ["single rate","Single ratE","Single Rate","Single rate 2"]})
simple_upstream_types = ["Single rate","Single rate 2"]
df['Status'] = np.where(df.UpstreamTypes.str.lower().isin([v.lower() for v in list_of_values]),'Matched', 'Unmatched')
df

结果如下:

UpstreamTypes   Status
0   single rate Matched
1   Single ratE Matched
2   Single Rate Matched
3   Single rate 2   Matched
卫浩瀚
2023-03-14

最后,我将pandas列格式化为小写条目,这对我的小写列表很有效。

东郭弘方
2023-03-14

您可以使用不接受标志的str.contains,以及将简单上游类型转换为正则表达式:

import re

raw_df_simple = raw_df[raw_df['upstream_rate_type'].str.contains('|'.join(simple_upstream_types), flags=re.IGNORECASE)]

 类似资料: