Py学习  »  Python

在Python中,如何根据另一列的值将列值的某些值设为零

user9023836 • 5 年前 • 1596 次点击  

如何根据Python中的列表“另一列”值将列值的某些值设为零

S.No    Num_1   Num_2   Num_3   Num_4   Num_5   id  Final
0   2   4   2   1   1   1   1.1
1   2.5 4.6 2.7 1.2 1.1 1   1.2
2   2   4   2   1   1   1   1.3
3   2.5 4.6 2.7 1.2 1.1 2   1.4
4   2   4   2   1   1   2   1.5
5   2.5 4.6 2.7 1.2 1.1 2   1.6
6   2   4   2   1   1   3   1.7
7   2.5 4.6 2.7 1.2 1.1 4   1.8
8   2   4   2   1   1   4   1.9
9   2.5 4.6 2.7 1.2 1.1 5   2
10  2   4   2   1   1   5   2.1
11  2.5 4.6 2.7 1.2 1.1 6   2.2
12  2   4   2   1   1   6   2.3
13  2.5 4.6 2.7 1.2 1.1 6   2.4
14  2   4   2   1   1   6   2.5
15  2.5 4.6 2.7 1.2 1.1 7   2.6
16  2   4   2   1   1   7   2.7
17  2.5 4.6 2.7 1.2 1.1 7   2.8
18  2   4   2   1   1   7   2.9
19  2.5 4.6 2.7 1.2 1.1 8   3
20  2   4   2   1   1   8   3.1
21  2.5 4.6 2.7 1.2 1.1 8   3.2
22  2   4   2   1   1   10  3.3
23  2.5 4.6 2.7 1.2 1.1 10  3.4

id = [2,4,5,6,8]

无论我的id在哪里,最后的值都应该是0(零)

我怎么用蟒蛇或熊猫做这个?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52631
 
1596 次点击  
文章 [ 3 ]  |  最新文章 5 年前
shT
Reply   •   1 楼
shT    6 年前

试试这个:

id_ = [2,4,5,6,8]

df['Final'].loc[df['id'].isin(id_)] = 0
jpp
Reply   •   2 楼
jpp    6 年前

你可以 mask 您的系列:

ids = [2, 4, 5, 6, 8]
df['Final'] = df['Final'].mask(df['id'].isin(ids), 0)
AkshayNevrekar
Reply   •   3 楼
AkshayNevrekar    6 年前

使用 np.where

import numpy as np

id_ = [2,4,5,6,8]  # as id is a keyword in Python

df['Final'] = np.where(df['id'].isin(id_), 0, df['Final'])