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

时间:2018-03-16 19:17:41

标签: python pandas dataframe

我有像这样的pandas数据框..

   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",我想更改它的下一列的值并在同一行中。这意味着我想改变"我尊重他人"到了#34;我爱自己"。我搜索过它,但我找不到直接的方法来完成这项任务。 有没有直接的方法来做到这一点。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

df['_message_'][rowIndx] = 'I love myself'

答案 2 :(得分:0)

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

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