Группировать и извлекать уникальные элементы на основе столбцов в фреймах данных? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть следующий фрейм данных:

MYDATA:

Id, date
X1, 2015,01
X2, 2015,02
X2, 2015,02
X3, 2015,03
X3, 2015,03
X4, 2015,03
X4, 2015,03
X5, 2015,05
X6, 2015,05
X7, 2015,05

Из этого кадра данных я хочу извлечь два списка для построения графика. В первом списке «x_labels» я хотел бы иметь уникальные даты, а во втором списке «y_values» я хочу, чтобы количество уникальных идентификаторов имели одинаковую дату. Я мог бы извлечь первый список по следующему коду:

x= mydata.groupby(by=[date],as_index=False)
x_labels=list(x.size().reset_index([0])[date'])

Итак, вывод:

x_labels=[‘2015,01’, ‘2015,02’, ‘2015,03’, ‘2015,05’]

Но я не смог извлечь второй список (y_values). Желаемый список должен быть таким:

y_values=[1,1,2,3]

1 Ответ

2 голосов
/ 25 июня 2019

pandas.DataFrame.groupby.nunique дает оба значения x_values и y_values:

d = df.groupby('date')['Id'].nunique()
print(d)

Вывод:

date
2015,01    1
2015,02    1
2015,03    2
2015,05    3
Name: Id, dtype: int64

Вы можете извлечь нужные переменные:

x_values, y_values = list(d.index), list(d.values)
x_values
# ['2015,01', '2015,02', '2015,03', '2015,05']
y_values
# [1, 1, 2, 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...