更改值dataframe pandas python的下一列中的值

问题描述 投票:0回答:3

我有像这样的熊猫数据框架..

   user    pwd    _message_  
0 _robin_ | usi | _I like coffee_  
1 _priya_ | ind | _I like green tea_  
2 gate    | ldn | _I like to play_  
3 _Reh_   | ksm | _I respect others_  

我有值“ksm”,我想改变它的下一列的值并在同一行。这意味着我想把“我尊重他人”改为“我爱自己”。我搜索过它,但我找不到直接的方法来完成这项任务。有没有直接的方法来做到这一点。

python pandas dataframe
3个回答
0
投票

使用DataFrame.loc,即。基于标签位置的索引器,用于按标签选择。这将有助于您避免“复制......”警告

df.loc[df.pwd=='ksm', 'message'] = 'I love myself'

0
投票

你可以过滤pwd并将常量分配给所有匹配的message元素:

df
# value before:
    user  pwd           message
0  robin  usi     I like coffee
1  priya  ind  I like green tea
2   gate  ldn    I like to play
3    Reh  ksm  I respect others

df['message'][df.pwd=='ksm'] = 'I love myself'
df
# output after
    user  pwd           message
0  robin  usi     I like coffee
1  priya  ind  I like green tea
2   gate  ldn    I like to play
3    Reh  ksm     I love myself

0
投票

您可以使用df.index查找与pwd = ksm对应的行号:

rowIndx = df.index[df['pwd'] == 'ksm']

然后,您可以使用该索引更改该行的_message_列的值:

df['_message_'][rowIndx] = 'I love myself'
© www.soinside.com 2019 - 2024. All rights reserved.