比较Dataframe中的列

时间:2015-12-02 16:03:22

标签: python python-2.7 pandas

我有两个数据框,我已连接成一个。我最终想要得到的是两个中存在的所有列的列表。数据框来自两个不同的数据库表,我需要根据两个表中存在的查询生成查询。

我尝试执行以下操作:concat_per.query('doe_per==focus_per')但它返回了一个空数据框。

      doe_per  focus_per
2         NaN  Period_02
3   Period_01  Period_06
4   Period_02  Period_08
5   Period_03        NaN
6   Period_04        NaN
7   Period_05        NaN
8   Period_06        NaN
9   Period_07        NaN
10  Period_08        NaN

1 个答案:

答案 0 :(得分:1)

你也可以使用函数isin()。 首先,您可以将第一列转换为基础列的集合或列表。然后使用isin()过滤第二个数据帧。

    firstList = set(df1st.doe_per)
    targetDF = df2nd[df2nd.focus_per.isin(firstList)==True]

如果要将两个数据帧合并为一个,可以使用

    pd.merge(df1,df2,left_on=df1st.doe_per,right_on = df2nd.focus_per,join='inner')

    pd.concat([df1,df2],on_,join='inner',ignore_index=True)

对不起,我忘记了函数中的一些参数。但是如果你想将一些数据帧合并为一个,你需要使用这两个函数。也许pd.combine()没问题。你可以查看pandas的api。