我有以下数据框:
Month,Value1,Value2
02,1,10
03,2,2
04,3,12
在此数据框架中,我希望每次Value1
< Value2
时,用NaN替换Month,Value1,Value2
02,1,10
03,NaN,2
04,3,12
。因此,所需的输出将如下所示:
data = pd.read_csv("test.csv", index_col=[0])
data = data.loc[data['Value2'] < 10, 'Value1'] = np.nan
我确实尝试了以下代码:
AttributeError: 'float' object has no attribute 'loc'
但遗憾的是它无法正常工作,并且给了我以下错误:
plt.show(block=False) # block = False allows automatic closing of the image
# the following command will close the graph in 3 seconds
time.sleep(3)
plt.close()
有谁知道为什么?也许如何解决这个问题?
答案 0 :(得分:2)
您不需要双重作业。试试这个:
data.loc[data['Value2'] < 10, 'Value1'] = np.nan
记住pd.DataFrame.loc
可以用作“getter”和“setter”。因此,为data.loc[slice1, slice2]
分配值非常自然。