当另一列在pandas

时间:2018-06-07 15:37:35

标签: python pandas dataframe nan

我有以下数据框:

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()

有谁知道为什么?也许如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您不需要双重作业。试试这个:

data.loc[data['Value2'] < 10, 'Value1'] = np.nan

记住pd.DataFrame.loc可以用作“getter”和“setter”。因此,为data.loc[slice1, slice2]分配值非常自然。