2016-06-09 5 views
2

У меня есть 2 одномерного массива Numpy сказать следующее:Найти уникальные значения по всем каждой строке

[["cat","dog","dog","mouse","man"], 
["rhino","rhino","bat","rhino","dino","dino"], 
["zebra","alien","alien","alien","alien"]] 

Я хочу, чтобы выполнить numpy.unique вдоль каждой строки, чтобы подсчитать количество вхождений каждой метки, к сожалению, Я не думаю, что это возможно, как numpy.unique бы возвращать векторы разной длины:

[["cat","dog","mouse","man"] 
["rhino","bat","dino"] 
["zebra","alien"]] 
(similar then for the counts) 

так что это не будет работать, очевидно.

Кто-нибудь знает, как я могу обойти эту проблему?

+0

Использование массива уникальную функцию. doc: http://php.net/manual/en/function.array-unique.php Если это не то, что вы ищете, добавьте ожидаемый результат в свой вопрос. Благодарю. –

+0

@NaveedAhmed 'numpy' - это * библиотека python *. –

ответ

1

Попробуйте это:

a = pd.DataFrame([["cat","dog","dog","mouse","man"], 
        ["rhino","rhino","bat","rhino","dino","dino"], 
        ["zebra","alien","alien","alien","alien"]]) 

a.apply(lambda x: pd.Series(x.unique()), axis=1) 
+0

Спасибо, что это работает для получения уникальных значений, но чтобы получить счет тоже, я нахожу сложным для набора данных, который я фактически использую. Если я использую метод pd.value_counts аналогично тому, что вы подробно описали, он вернет матрицу с огромным количеством столбцов из-за того, что у меня есть большое количество потенциальных значений. Не уверен, как действовать. – Colin

Смежные вопросы