Как найти столбец с несколькими общими значениями в одном кадре данных, используя python - PullRequest
1 голос
/ 02 марта 2020

Фрейм данных

1          2          3         4      
apple      juice      fruit     edible
banana     smoothie   fruit     edible
orange     juice      fruit     edible
berries    jelly      fruit     edible

Вывод Я хочу

DataFrame 1:

3
fruit
fruit
fruit
fruit

DataFrame 2:

4
edible
edible
edible
edible


Также должно быть напечатано «Столбец 3, 4 имеют общие значения»

Любая помощь приветствуется

1 Ответ

1 голос
/ 02 марта 2020

Используйте DataFrame.nunique для фильтрации только по уникальным столбцам:

df = df.loc[:, df.nunique().eq(1)]
print (df)
       3       4
0  fruit  edible
1  fruit  edible
2  fruit  edible
3  fruit  edible

А затем для списка one list DataFrame по Series.to_frame:

L = [df1[x].to_frame() for x in df1.columns]
print (L)
[       3
0  fruit
1  fruit
2  fruit
3  fruit,         4
0  edible
1  edible
2  edible
3  edible]

print (L[0])
       3
0  fruit
1  fruit
2  fruit
3  fruit

print (L[1])
        4
0  edible
1  edible
2  edible
3  edible

А для динамического c используется pring join с f-string s:

print (f'Column {", ".join(df1.columns.astype(str))} have common values')
Column 3, 4 have common values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...