Преобразование pandas Dataframe в несколько numpy массив - PullRequest
1 голос
/ 05 мая 2020

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

My data:

Date        Value
2006-12-11  816.2
2006-12-11  816.2
2006-12-11  816.2
2006-12-12  848.2
2006-12-12  849.0
2006-12-13  885.6
2006-12-13  887.0
2006-12-13  885.2
2006-12-13  882.0
2006-12-13  885.0

Ожидаемый результат:

[[816.2, 816.2, 816.2]
[848.2, 849.0]
[885.6, 887.0, 885.2, 882.0, 885.0]] 

Ответы [ 2 ]

2 голосов
/ 05 мая 2020

Вы можете использовать groupby с numpy.array:

import numpy as np:

df.Value.groupby(df.Date).apply(np.array).values

Пример:

df = pd.DataFrame({
    "Date": ['2006-12-11', '2006-12-11', '2006-12-11', '2006-12-12', '2006-12-12'], 
    'Value': [816.2, 816.2, 816.2, 848.2, 849.0]})
df.Value.groupby(df.Date).apply(np.array).values
array([array([816.2, 816.2, 816.2]), array([848.2, 849. ])], dtype=object)
1 голос
/ 05 мая 2020

Вы можете преобразовать значения в список:

df.groupby(by=df.Date).agg(lambda x: x.tolist()).values
...