我正在遍历一些数据,如果列中不包含任何nan,我想将其与主数据df
合并。但是由于某种原因,.isna().any()
在循环中不起作用,只有在我单独查看列时才起作用。你知道吗
我目前的代码是:
if df[Stock].isna().any() is False:
total_df = total_df.merge(df[['Date', Stock]], on='Date', how='left')
else:
pass
就我而言,这应该会过滤掉任何包含nan的列。但是,它没有,它基本上看起来什么也不做,因为我的df
一旦完成,它就包含了nan列以及我真正想要的列。我也试过==True
,但没用。当我使用print(df[Stock].isna().any())
检查一个我知道的事实的列时,程序正确地返回True
。所以我的问题是为什么这个循环不起作用?你知道吗
我已经在这部片子上主演了好几个小时了,有可能我正在做一件不可思议的蠢事,所以需要一双新鲜的眼睛,但我真的被难住了。干杯
编辑:
所以值得一提的是,当我计算每一列的和时,它会返回一个实际的数字。所以当我手动检查df
时,熊猫似乎没有很清楚地识别出什么是nan
。但是,在执行循环之前,我必须对我的pd.to_numeric
数据进行df
运算,否则我就不能在后期对价格数据进行任何计算。有没有可能这会影响到事情?你知道吗
没有你的代码我无法测试它,但是试着把这个代码放到for循环中。不确定['Date','column']是否应该加引号,但请同时尝试这两种方法。你知道吗
错误是使用了
is
。你知道吗结果总是错误的,没有合并。但如果你使用:
或者
它起作用了。你知道吗
原因很详细。
is
不等于==
。你知道吗相关问题 更多 >
编程相关推荐