【问题标题】:Check if a value exist in a column and change in another Pandas检查列中是否存在值并在另一个 Pandas 中更改
【发布时间】:2022-01-23 23:30:19
【问题描述】:

我有以下信息。

假设我有以下列表。

my_list = [2,3,4,5]

我的数据框如下:

df

Col1      Value
[1,3,6]    Hot
[7]        Mild
[10,11,2]  Cool
[5,9]      Cool
[2,5,6]    Mild

我想检查my_list 列表中的值之一是否存在于Col1 列中。如果存在,将Value列的值修改为对应行的Hot

我希望看到类似下面的内容。

Col1      Value
[1,3,6]    Hot
[7]        Mild
[10,11,2]  Cool
[5,9]      Hot
[2,5,6]    Hot

我只是在寻找一个简单的脚本,它可以迭代并检查每一行,并在对应行的另一列中更改一个值。

有人可以帮忙吗?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以使用explodeisinagg.loc 的组合:

    df.loc[df['Col1'].explode().isin(my_list).groupby(level=0).any(), 'Value'] = 'Hot'
    

    输出:

    >>> df
              Col1 Value
    0    [1, 3, 6]   Hot
    1          [7]  Mild
    2  [10, 11, 2]   Hot
    3       [5, 9]   Hot
    4    [2, 5, 6]   Hot
    

    【讨论】:

    • 完美答案!
    • 嗨,我有附加列的附加条件。例如,名为 sum 的列应大于 0 以替换该值。如果你可以添加这个,我还能编辑问题吗?
    • 您介意在新问题中提出这个问题吗?以使答案无效的方式编辑问题被认为是不好的做法。
    • 好的!会这样做。
    猜你喜欢
    • 2022-01-24
    • 2022-12-12
    • 2021-09-19
    • 2019-11-06
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2014-01-30
    • 2022-08-26
    相关资源
    最近更新 更多