【问题标题】:Pandas way to find whether a value is contained in a key value pair or notPandas 查找值是否包含在键值对中的方法
【发布时间】:2019-11-28 20:19:24
【问题描述】:

我基本上有一列我想检查是否有效的值。我想创建一个新列,以返回 true 或 false 的有效性。当在另外两列的查找中找到这些值时,这些值是有效的,这两列包括字典的键和值。

在这里,我的价值观是考试。 EXAM 仅在他们登陆评分站点或可以评分的DBN 时才有效,例如,如果 11X000 可以在数学上得分,而这是在 11X000 登陆的数学考试,它是 Valid Site

查看屏幕截图,第一张图片是我试图在 Python 中复制的内容,第二张图片是字典。

在我的代码中,我为{site:exam} 制作了一个字典,并尝试检查所有给定记录的有效性。

Sites_To_Exams_Dict = Sites_To_Exams_df.groupby('DBN')['ALL EXAMS'].apply(list).to_dict()

MaterialsReport_df['Valid Site'] = np.where(MaterialsTracking_df['EXAM'] in Sites_To_Exams_Dict.get(MaterialsReport_df['Scoring Site Including X']),
                                            "Y", "N")

不幸的是,这给出了错误 TypeError: 'Series' objects are mutable, thus they cannot be hashed

我将不胜感激以上代码的任何不同方法或错误修复。谢谢!

【问题讨论】:

  • 从您的描述中,您要尝试做什么并不完全清楚。请参阅How to create good pandas examples 并在问题的文本中提供示例输入和输出,而不是图片

标签: python pandas


【解决方案1】:

我相信您的问题是,当您调用 to_dict. 系列对象(如列表)是可变的,因此 @987654322 时,您正在尝试使用系列对象(每个单元格中的考试列表)作为字典中的键@。我会尝试避免使用字典方法,而是检查使用 .isin 之类的东西来检查该值是否在有效站点列表中。

【讨论】:

    猜你喜欢
    • 2017-09-12
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    相关资源
    最近更新 更多