Pandas Dataframe groupby принимает метку, включенную в массив numpy - PullRequest
3 голосов
/ 31 марта 2019

Я хочу преобразовать pandas dataframe в массив numpy с групповой меткой.В groupby я должен группировать с помощью регулярных выражений, поэтому важно взять с собой ярлык.

Мои данные в формате:

start_date,is_member 

2014-04-15 00:01,1
2014-04-15 00:01,1
2014-04-15 01:01,1
2014-04-15 01:01,1
2014-04-15 02:02,1
2014-04-15 03:05,1

Я пробовал

df = pd.read_csv(filename, header=0)
df = df.groupby(df.start_date.str.extract("^(.*?)\:", expand=False))[['start_date']].count()[['start_date']]
print(df)

Вывод Dataframe:

start_date               
2014-04-15 00           2
2014-04-15 01           2
2014-04-15 02           1
2014-04-15 03           1

Я пыталсяпреобразовать его в массив numy с помощью

numpy_array = df.values

Вывод массива numpy - это просто значение счетчика

[[2]
 [2]
 [1]
 [1]]

Я хочу, чтобы начальная дата в виде столбца.

[[2014-04-15 00 2]
 [2014-04-15 01 2]
 [2014-04-15 02 1]
 [2014-04-15 03 1]]

1 Ответ

2 голосов
/ 31 марта 2019

Я считаю, что вам нужно конвертировать индекс в столбец по DataFrame.reset_index:

#simplify code 
df = df.groupby(df.start_date.str.extract("^(.*?)\:", expand=False))['start_date'].count()

numpy_array = df.rename_axis('index').reset_index().values
print (numpy_array)
[['2014-04-15 00' 2]
 ['2014-04-15 01' 2]
 ['2014-04-15 02' 1]
 ['2014-04-15 03' 1]]

или для панд 0,24 + использование:

numpy_array = df.rename_axis('index').reset_index().to_numpy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...