Pandas 比较两个数据帧,具体问题
我读了安迪对这个问题的回答 我有两个关于代码的问题,不幸的是我还没有50个代表对答案发表评论,所以我希望我能在这里得到一些帮助Pandas 比较两个数据帧,具体问题,pandas,Pandas,我读了安迪对这个问题的回答 我有两个关于代码的问题,不幸的是我还没有50个代表对答案发表评论,所以我希望我能在这里得到一些帮助 [24]:changed=ne_stacked[ne_stacked]中的是做什么的? 我不确定df1=df[df]是做什么的,我似乎无法从熊猫医生那里得到答案,有人能给我解释一下吗 是np.where(df1!=df2)与pd.df.where(df1!=df2)相同。如果没有,有什么区别 问题1 ne_-stacked是一个pd系列,由True和False值组成,这
是做什么的?
我不确定df1=df[df]是做什么的,我似乎无法从熊猫医生那里得到答案,有人能给我解释一下吗
np.where(df1!=df2)
与pd.df.where(df1!=df2)
相同。如果没有,有什么区别问题1
ne_-stacked
是一个pd系列
,由True
和False
值组成,这些值指示df1
和df2
不相等的位置
ne_stacked[boolean_array]
是一种过滤序列ne_stacked
的方法,方法是消除ne_stacked
中boolean_array
为False
的行,并保持ne_stacked
中boolean_array
为True
的行
碰巧,ne_-stacked
也是一个布尔数组,因此可以用来过滤自身。他为什么要这么做?所以我们可以在过滤后看到索引的值
因此ne_stacked[ne_stacked]
是ne_stacked
的子集,只有True
值
问题2
np.其中
np.where
做两件事,如果你只传递一个类似于np.where(df1!=df2)
的条件,你会得到一个数组的元组,其中第一个是所有行索引的引用,与所有列索引的元组的第二个元素一起使用。我通常是这样用的
i, j = np.where(df1 != df2)
现在我可以得到df1
或df2
的所有元素,它们之间有如下区别
df.values[i, j]
或者我可以分配给那些单元格
df.values[i, j] = -99
或者其他很多有用的东西
您还可以将np.where
用作数组的if、then和else
np.where(df1 != df2, -99, 99)
在df1!=其余部分为df2
和99
df.where
另一方面,df.where
计算布尔值的第一个参数,并将大小相等的对象返回到df
,其中计算为True
的单元格将保留,其余的单元格为np.nan
或df的第二个参数中传递的值。where
df1.where(df1 != df2)
或
它们是一样的吗?
显然,它们不是“相同的”。但是你可以用同样的方法
np.where(df1 != df2, df1, -99)
应与相同
df1.where(df1 != df2, -99).values
df1.where(df1 != df2, -99).values