如何通过相关值过滤数据框列?

时间:2019-04-04 02:04:38

标签: python pandas dataframe

我正试图通过它们的相关值来过滤数据框列。

我有两个数据帧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的列。

2 个答案:

答案 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