如何为 pandas 数据框中另一列中的特定值更新一行中的列值?
How to update a column value in a row for specific value in another column in pandas dataframe?
我有一个包含 3 列的数据框 id
、type
、type_value
。
它们已经填充了值。 type
列包含重复值 type1
、type2
、type3
、type4
。
type_value
包含一个包含出现频率的 Counter 对象。
我只需要对 Counter 字典执行一些操作,并在 type
与 type1
[=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)
我有一个包含 3 列的数据框 id
、type
、type_value
。
它们已经填充了值。 type
列包含重复值 type1
、type2
、type3
、type4
。
type_value
包含一个包含出现频率的 Counter 对象。
我只需要对 Counter 字典执行一些操作,并在 type
与 type1
[=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)