Как удалить повторяющиеся значения среди столбцов независимо от их порядка в python или pyspark? - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть датафрейм, в котором у меня есть повторяющиеся значения среди столбцов.Я хочу удалить из фрейма данных только те значения, которые являются общими для всех столбцовэффективный способ сделать это в Python или Pyspark?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Можно использовать set intersection и aggregate

>>> tr = set(df.A.values) & set(df.B.values) & set(df.C.values)
>>> df[~df.isin(tr)].agg(lambda s: s[~pd.isnull(s)].values)

    A       B       C
0   Food    Food    Glamour
1   Novel   Glamour Party
2   Pub     Party   Driving
0 голосов
/ 22 сентября 2018

Понятие «фрейм данных» относится к структуре данных, которая принимает форму массива, в котором существует некоторая связь между столбцами и другая связь между строками.Здесь, кажется, нет связи между рядами: «Еда», «Вечеринка» и «Вождение», например, не связаны друг с другом.Таким образом, концепция: dataframe "имеет ограниченную применимость. Вы можете создать словарь списков, таких как:

common = [item for item in df['A'].values if all(item in df[col_name].values for col_name in df.columns)]
unique_elements = {col_name:[item for item in df[col_name].values if not item in common] for col_name in df.columns}

Если вы действительно хотите, вы можете создать фрейм данных из unique_elements.

Обратите внимание, что существуют также решения с типом данных set, но это устранит множественность (неясно, что вы хотите в этом отношении).

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