如何为 pandas 数据框中另一列中的特定值更新一行中的列值?

How to update a column value in a row for specific value in another column in pandas dataframe?

我有一个包含 3 列的数据框 idtypetype_value

它们已经填充了值。 type 列包含重复值 type1type2type3type4

type_value 包含一个包含出现频率的 Counter 对象。

我只需要对 Counter 字典执行一些操作,并在 typetype1[=40= 匹配时更新 type_value 列] 并保持其他行不变。

输入:

id  type    type_value
1   type1   Counter object that needs to be updated
2   type2   some random value
3   type3   some random value
4   type4   some random value
5   type1   Counter object that needs to be updated
6   type2   some random value
7   type3   some random value
8   type4   some random value
9   type1   Counter object that needs to be updated
10  type2   some random value
11  type3   some random value
12  type4   some random value
13  type1   Counter object that needs to be updated
14  type2   some random value
15  type3   some random value
16  type4   some random value

输出:

id  type    type_value
1   type1   Do an operation on this and update with new values
2   type2   some random value
3   type3   some random value
4   type4   some random value
5   type1   Do an operation on this and update with new values
6   type2   some random value
7   type3   some random value
8   type4   some random value
9   type1   Do an operation on this and update with new values
10  type2   some random value
11  type3   some random value
12  type4   some random value
13  type1   Do an operation on this and update with new values
14  type2   some random value
15  type3   some random value
16  type4   some random value

Fitler 按条件行并应用您的自定义函数:

def func(x):
    #your operation
    return x

mask = df['type'] == 'type1'
df.loc[mask, 'type_value'] = df.loc[mask, 'type_value'].apply(func)