2015-12-02 3 views
0

У меня есть два кадра данных, которые я объединил в один. То, что я в конечном итоге хочу в конечном итоге, - это список всех столбцов, которые существуют в обоих. Кадры данных поступают из двух разных таблиц db, и мне нужно генерировать запросы на основе тех, которые существуют в обеих таблицах.Сравнение столбцов в Dataframe

Я пробовал сделать следующее: 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

Вы спрашиваете, существуют ли имена столбцов в обоих dfs или что значения существуют между двумя разными столбцами в 2 dfs? Ваш вопрос и результат противоречат друг другу – EdChum

ответ

1

также можно использовать функция isin(). Сначала вы можете преобразовать первый столбец в набор или список в качестве базовых столбцов. Затем используйте isin() для фильтрации второго кадра данных.

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

Если вы хотите, чтобы объединить два dataframes в один, вы можете использовать

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) 

Мне жаль, что я забыл некоторые Params в function.But, если вы хотите объединить некоторые данные в один, вам нужно использовать эти две функции. Возможно, pd.combine() в порядке. Вы можете найти api панд.

+0

Это сработало отлично! Благодаря! – Mysteri0n

+0

Добро пожаловать. Рад этому вот: D –

Смежные вопросы