我正计划提高非熊猫开发者的可读性;
我使用.loc
new_value = 'stackoverflow'
s_query = 'nbc'
SUGGESTED = 'suggested'
QUERY = 'query'
df.loc[(df[QUERY] == s_query), [SUGGESTED]] = new_value
还可以选择:
new_value = 'stackoverflow'
s_query = 'nbc'
SUGGESTED = 'suggested'
QUERY = 'query'
df[SUGGESTED] = df[SUGGESTED].mask(df[QUERY] == s_query, new_value)
在这种情况下,df[SUGGESTED]
列将更新为匹配'stackoverflow'
的行的df[QUERY] == s_query
值。
想知道Pandas中是否还有其他选项可以达到相同的效果。
答案 0 :(得分:2)
您可以使用pd.DataFrame.mask
姐妹方法pd.DataFrame.where
,它会使False
s nan
并填写第二个参数
df[SUGGESTED] = df[SUGGESTED].where(df[QUERY] != s_query, new_value)
或者
df.update(df[QUERY].eq(s_query).map({True: new_value}))