我正试图通过它们的相关值来过滤数据框列。
我有两个数据帧d1和d2。 df2有多个列,我只选择那些与df1具有指定相关值的列。
我编写了一个函数来运行df1和df2数据帧之间的相关性
const trackFromRightToLeft = {
transitionSpec: {
duration: 350
},
screenInterpolator: sceneProps => {
const { position, layout, scene } = sceneProps
const thisSceneIndex = scene.index
const width = layout.initWidth
const translateX = position.interpolate({
inputRange: [thisSceneIndex - 1, thisSceneIndex, thisSceneIndex + 1],
outputRange: [width, 0, -width]
})
const slideFromRight = { transform: [{ translateX }] }
return slideFromRight
},
}
然后我尝试使用“过滤器”选择df2中的列
threshold = 0.8
filter = df2.apply(lambda x: df1.corrwith(x)) > threshold
这没有用,我得到的是整个df2充满了NaN值,而不是只有相关值高于0.8的列。
答案 0 :(得分:0)
这可能可行,只要您的df1是单列数据帧。学分到@ Wen-Ben。
df2.loc[:, [x for x in filter.iloc[0]]]
答案 1 :(得分:0)
您可以尝试以下方法:
corr = pd.Series(df2.corrwith(df1) > threshold) #assuming df1 has only one column
df2[corr[corr == True].index] #This will get you required columns