Невозможно сопоставить индексы двух массивов при использовании `.unique` и` value_counts () ` - PullRequest
0 голосов
/ 03 июля 2019

При извлечении данных из фрейма данных я использую один столбец и извлекаю уникальные значения из этого столбца с помощью функции .unique() и сохраняю эти значения в np.array. Аналогично для этого столбца я также извлекаю количество уникальных значений с помощью функции .value_counts() и помещаю его в отдельный массив. При этом, когда я получаю два массива, я не могу соответствовать их показателям.

    x=np.array(df['Fruits'].unique())
    y=np.array(df['Fruits'].value_counts())

Фактический результат: array1=(['Apple','Mango','Orange']) . array2=([10,4,17]), где количество яблок равно 17, количество манго равно 10, а количество апельсинов равно 4. Ожидаемый результат array1=(['Apple','Mango','Orange']) . array2=([17,10,4])

Ответы [ 2 ]

1 голос
/ 03 июля 2019

Вместо группы используйте

df = pd.DataFrame({'Fruits': ['Mango']*15+['Apple']*10+['Orange']*5 })
adf = df.groupby(['Fruits']).size()
x = adf.index.values
y = adf.values

Зачем использовать группу по

Из документов:

value_count: Полученный объект будет в порядке убывания, так что первый элемент является наиболее часто встречающимся элементом.

unique: уникальности возвращаются в порядке появления.

Так что порядок не * между value_count и unique

0 голосов
/ 03 июля 2019

value_count вернет серию отсчетов, которые проиндексированы по значению, которое они рассчитывают.

value_series = df['Fruits'].value_counts(sort=False)
x=np.array(value_series.index)
y=np.array(value_series.values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...