5
我有一个有两列的熊猫数据框:x和值。 我想找到所有的行,其中x == 10,并为所有这些行设置值= 1,000。我想下面的代码,但我得到的python pandas:如何避免链接赋值
A value is trying to be set on a copy of a slice from a DataFrame.
我明白我可以使用的.loc或.IX避免这种情况的警告,但我首先需要找到位置或满足所有行的索引我的条件x == 10。有更直接的方法吗?
谢谢!
import numpy as np
import pandas as pd
df=pd.DataFrame()
df['x']=np.arange(10,14)
df['value']=np.arange(200,204)
print df
df[ df['x']== 10 ]['value'] = 1000 # this doesn't work
print df
对不起,使用推荐的'df.loc [df ['x'] == 10,'value'] = 1000'有什么问题? – EdChum
谢谢,我没有意识到这是一个选项。也许这只是我自己,也许是因为我太习惯SQL了,对熊猫来说太新了,但是我仍然发现一些SQL中平庸的任务在熊猫中很麻烦,文档不是很清楚 –
[docs] (http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy)非常清晰,并且警告会告诉你,你正在做的事可能不起作用 – EdChum