【问题标题】:Element wise 'in' for pandas with a Series of Lists带有一系列列表的熊猫的元素明智的“输入”
【发布时间】:2020-04-22 07:02:21
【问题描述】:

我有大约 30 列我希望更改一个值,如果该值在该行中的一列列表中。这有点难以用语言来描述,所以这里是我正在谈论的一些代码:

test = test.groupby('RealId')['Player'].apply(list).reset_index(name='Invalids')
test.index = te["RealId"]
test.drop("RealId", axis='columns', inplace=True)
test = test.join(te, on="RealId", how="left")

test['PA_14'].isin(test['Invalids'])

PA_14 列是一个普通的 Series 字符串,而 Invalids 是一个 Series 字符串列表。我想要的是最后一行输出一个布尔向量,但 isin() 似乎不适用于一系列列表。考虑到它需要再做 30 次,我如何相对快速地做到这一点?

【问题讨论】:

  • 请在您的问题中添加示例数据,以及预期的 output.data,而不是图片

标签: python python-3.x pandas numpy python-3.6


【解决方案1】:

您的最后一行实际上测试了test['PA_14'] 的每个元素(str),如果它是test['Invalids'] 的元素(列表)之一。
你可以试试: boolean_index = [s in list_s for (s, list_s) in zip(test['PA_14'], test['Invalids'])]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    相关资源
    最近更新 更多