Pandas:如何根据id列表增加列的单元格值

2024-05-22 20:41:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个对应于数据帧行的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发生变异?


Tags: 数据inididsdf列表formy
2条回答

身份证是唯一的,对吗?如果是,可以直接将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

相关问题 更多 >

    热门问题