我有两个数据框,我已连接成一个。我最终想要得到的是两个中存在的所有列的列表。数据框来自两个不同的数据库表,我需要根据两个表中存在的查询生成查询。
我尝试执行以下操作: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
答案 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。