我想将我的列转换为多个数组,使每一行都具有来自同一日期的值
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]]
您可以将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)
您可以将值转换为列表:
df.groupby(by=df.Date).agg(lambda x: x.tolist()).values