您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Pandas / Python:根据另一列中的值设置一列的值

Pandas / Python:根据另一列中的值设置一列的值

一种方法是将索引与配合使用.loc

在没有示例数据框的情况下,我将在此处进行补充:

import numpy as np
import pandas as pd

df = pd.DataFrame({'c1': list('abcdefg')})
df.loc[5, 'c1'] = 'Value'

>>> df
      c1
0      a
1      b
2      c
3      d
4      e
5  Value
6      g

假设您想 c2c1除wherec1是之外, 等效Value在这种情况下,您希望将其分配给10:

首先,您可以使用以下两行之一创建一个新的列c2,并将其设置为等效于c1,(它们本质上是做相同的事情):

df = df.assign(c2 = df['c1'])
# OR:
df['c2'] = df['c1']

然后,找到所有c1等于'Value'使用的索引.loc,并c2在这些索引处分配所需的值:

df.loc[df['c1'] == 'Value', 'c2'] = 10

最终,您将得到:

>>> df
      c1  c2
0      a   a
1      b   b
2      c   c
3      d   d
4      e   e
5  Value  10
6      g   g

如果按照问题中的建议,有时您可能只是想 ,而不是创建一个新列,则跳过该列的创建,然后执行以下操作:

df['c1'].loc[df['c1'] == 'Value'] = 10
# or:
df.loc[df['c1'] == 'Value', 'c1'] = 10

给你:

>>> df
      c1
0      a
1      b
2      c
3      d
4      e
5     10
6      g
python 2022/1/1 18:32:40 有223人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶