熊猫错误:isin()获得了意外的关键字参数“ case”

时间:2019-06-25 10:54:59

标签: python pandas

我有以下代码,其中包括大小写可变的列表。我想使用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 个答案:

答案 0 :(得分:0)

您可以使用str.contains来接受标志,并将simple_upstream_types转换为正则表达式:

import re

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

答案 1 :(得分:0)

我最终将pandas列的格式设置为小写,这对我的小写列表很有效。

答案 2 :(得分:0)

这是另一种方式。使用numpy where,创建一个用于比较类型列表和列值的新列(小写)。然后在新列中说明是matches还是unmatched。在下面看到样机:

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