如何替换datafram中特定列中的特定值

2024-05-16 02:02:07 发布

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

获取格式化为字符串L和数据帧df的代码列表:

list = ['A', 'D', 'G']
df = 

Code    Type    Score   Price
A        1       1.3     5
A        2       4.5     6
C        4       4.32    7
D        5       2.4     8
E        6       2       9
F        7       1.3     2
G        7       1       1


如果df['Code']在列表中,如何替换df['Price']中的值?你知道吗

所以在这个例子中,我想改变前两行,第四行和最后一行,因为它们的代码在列表中。你知道吗

我有另一个列表,其中有值,这个列表的长度是要替换的值的数量,所以在这个例子中它的长度是4。所以列表看起来像price\u replace=[3,4,7,8],所以前两行的价格变成3和4,。。。。以此类推

我想保持一切不变。你知道吗

我试过了

df.loc[df['Code'].isin(list)]

它生成了一个由我想更改的行组成的数据帧,但是我不知道如何实际更改它们,然后使df的其他行保持不变。你知道吗

有什么想法吗?你知道吗


Tags: 数据字符串代码df列表数量typecode
1条回答
网友
1楼 · 发布于 2024-05-16 02:02:07

您只需使用numpy.where()就可以做到这一点。你知道吗

C = numpy.where('condition', x, y)

xy应该是数组。你知道吗

这意味着如果条件返回True,则C将等于x,否则y。你知道吗

就你而言:

df['Price'] = numpy.where(df['Code'] in list, ['Your value if true'], df['Price'])

这基本上意味着您将通过'Your value if true'来扩展Price列,当Code列中的值存在于list列表中时,它将保留Price列的原始值。你知道吗

另外,请避免在python中使用'list'作为list对象的变量名,这是不好的做法:))。你知道吗

相关问题 更多 >