Для извлечения уникального значения и подсчета из кадра данных в пандах - PullRequest
0 голосов
/ 29 апреля 2018

Мне нужно извлечь уникальные значения, их количество в столбце фрейма данных и отдельный столбец ключа индекса в фрейме данных.

рассмотрим следующий пример: фрейм данных df1 состоит из

+------+--------+
| city |  score |
+------+--------+
| a    |     12 |
| b    |     45 |
| c    |     50 |
| d    |     65 |
| a    |     58 |
| a    |     70 |
+------+--------+

Мне нужен вывод в другом фрейме данных df2 как

+-------------+--------+--------------+
| unique city |  count |    index key |
+-------------+--------+--------------+
| a           |      3 |            1 |
| b           |      1 |            2 |
| c           |      1 |            3 |
| d           |      1 |            4 |
+-------------+--------+--------------+

Я новичок в пандах, я не мог понять, как это сделать.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018
f, u = pd.factorize(df.city)
pd.DataFrame({
    'unique city': u,
    'Count': np.bincount(f),
    'index key': np.arange(len(u)) + 1
}, columns=['unique city', 'Count', 'index key'])

  unique city  Count  index key
0           a      3          1
1           b      1          2
2           c      1          3
3           d      1          4
0 голосов
/ 29 апреля 2018

IIUC, сначала нужно reset_index, чтобы мы могли включить значение индекса в agg part

df.reset_index().groupby('city').agg({'score':'count','index':'first'})
Out[404]: 
      index  score
city              
a         0      3
b         1      1
c         2      1
d         3      1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...