Есть ли контекстный менеджер для временного изменения настроек matplotlib?

Как уже намечено, isin требует, чтобы столбцы и индексы были одинаковыми для соответствия. Если совпадение должно быть только в содержимом строки, одним из способов получить маску для фильтрации присутствующих строк является преобразование строк в индекс (Multi):

In [77]: df1 = pandas.DataFrame(data = {'col1' : [1, 2, 3, 4, 5, 3], 'col2' : [10, 11, 12, 13, 14, 10]})
In [78]: df2 = pandas.DataFrame(data = {'col1' : [1, 3, 4], 'col2' : [10, 12, 13]})
In [79]: df1.loc[~df1.set_index(list(df1.columns)).index.isin(df2.set_index(list(df2.columns)).index)]
Out[79]:
   col1  col2
1     2    11
4     5    14
5     3    10

Если индекс следует учитывать, set_index имеет аргумент ключевого слова для добавления столбцов к существующему индексу. Если столбцы не совпадают, список (df.columns) можно заменить спецификациями столбцов для выравнивания данных.

pandas.MultiIndex.from_tuples(df<N>.to_records(index = False).tolist())

можно альтернативно использовать для создания индексов, хотя я сомневаюсь, что это более эффективно .

13
задан mwaskom 15 February 2016 в 03:18
поделиться