Как узнать разницу двух фреймов данных с точки зрения имени столбца, используя Python - PullRequest
0 голосов
/ 14 мая 2018

Я хочу выяснить разницу между двумя фреймами данных в терминах имен столбцов.

Это образец таблицы1

d1 = {'row_num': [1, 2, 3, 4, 5], 'name': ['john', 'tom', 'bob', 'rock', 'jimy'], 'DoB': ['01/02/2010', '01/02/2012', '11/22/2014', '11/22/2014', '09/25/2016'], 'Address': ['NY', 'NJ', 'PA', 'NY', 'CA']}
df1 = pd.DataFrame(data = d)
df1['month'] = pd.DatetimeIndex(df['DoB']).month
df1['year'] = pd.DatetimeIndex(df['DoB']).year

Это образец таблицы2

d2 = {'row_num': [1, 2, 3, 4, 5], 'name': ['john', 'tom', 'bob', 'rock', 'jimy'], 'DoB': ['01/02/2010', '01/02/2012', '11/22/2014', '11/22/2014', '09/25/2016'], 'Address': ['NY', 'NJ', 'PA', 'NY', 'CA']}
df2 = pd.DataFrame(data = d)

таблица 2 или df2 не имеет столбца месяца и года, как df1.Я хочу выяснить, какие столбцы df1 отсутствуют в df2.

Я знаю, что в SQL есть «EXCEPT», но как это сделать с помощью pandas / python, Есть предложения?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Для этой цели предусмотрена функция: pd.Index.difference

df1.columns.difference(df2.columns)
Index(['month', 'year'], dtype='object')

И соответствующие столбцы;

df1[df1.columns.difference(df2.columns)]

   month  year
0      1  2010
1      1  2012
2     11  2014
3     11  2014
4      9  2016
0 голосов
/ 14 мая 2018

Вы можете сделать: [col for col in df1.columns if col not in df2.columns], чтобы найти столбцы df1 не в df2, а в результате вы получите список имен столбцов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...