2024-05-22 20:41:05 发布
网友
我有一个对应于数据帧行的id列表。从这个id列表中,我想增加与该id的行相交的另一列的值。
我的想法是这样的:
ids = [1,2,3,4] for id in ids: my_df.loc[my_df['id']] == id]['other_column'] += 1
但这不管用。我如何使原始df my_df发生变异?
my_df
身份证是唯一的,对吗?如果是,可以直接将id放入df:
id
df
ids = [1,2,3,4] for id in ids: df.loc[id,'column_name'] = id+1
试试这个:
my_df.loc[my_df['id'].isin(ids), 'other_column'] += 1
演示:
In [233]: ids=[0,2] In [234]: df = pd.DataFrame(np.random.randint(0,3, (5, 3)), columns=list('abc')) In [235]: df Out[235]: a b c 0 2 2 1 1 1 0 2 2 2 2 0 3 0 2 1 4 0 1 2 In [236]: df.loc[df.a.isin(ids), 'c'] += 100 In [237]: df Out[237]: a b c 0 2 2 101 1 1 0 2 2 2 2 100 3 0 2 101 4 0 1 102
身份证是唯一的,对吗?如果是,可以直接将
id
放入df
:试试这个:
演示:
相关问题 更多 >
编程相关推荐