我有以下信息。
假设我有以下列表。
my_list = [2,3,4,5]
我的 Dataframe 如下:
df
Col1 Score Value
[1,3,6] 0 Hot
[7] 10 Mild
[10,11,2] 50 Cool
[5,9] 0 Cool
[2,5,6] 100 Mild
我想检查列表my_list中的某个值是否存在于列Col1中。如果存在,则通过检查是否Score > 0
将相应行中的值更改为Hot,除非保持值列中的值不变。
我想看看下面这样的东西。
Col1 Score Value
[1,3,6] 0 Hot
[7] 10 Mild
[10,11,2] 50 Hot
[5,9] 0 Cool
[2,5,6] 100 Hot
我只是在寻找一个简单的脚本,可以迭代和签入每一行,并改变在另一列的值对应的行。
有人能帮忙吗?
2条答案
按热度按时间o8x7eapl1#
首先使用
explode
Col1检查值是否在my_list中,然后使用groupby
+any
获取一系列布尔值(如果列表中至少有一项,则为True)。如果满足以下两个条件,则使用此值和Score上的条件
mask
“Hot”值:输出:
wkftcu5l2#
下面是使用
map()
和where()
的方法:或
旧答案:
输出: