我有像这样的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;我爱自己"。我搜索过它,但我找不到直接的方法来完成这项任务。 有没有直接的方法来做到这一点。
答案 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'