我发现很难将pandas系列大小M
转换为矩形/小块数组/大小为N
的数据框1>的每个大小为MxN
的numpy数组
示例:
import pandas as pd
import numpy as np
from scipy import stats
d = pd.DataFrame({'grp': np.random.randint(1, 10, 1000), 'x':np.random.rand(1000,)})
s = d.groupby('grp')['x'].apply(lambda x: stats.gaussian_kde(x.values, bw_method = .01).evaluate(np.linspace(0,1,100)))
我得到的输出是Series类型,其中条目的类型是numpy.ndarray。 如何将其转换为10(组)乘以100(评估箱)的大小?
答案 0 :(得分:2)
您可以np.vstack
使用
sArray = np.vstack(s)
但在你的情况下你的Series
是(9,100)。如果你想要它(10,100)你需要改变线。
d = pd.DataFrame({'grp': np.random.randint(1, 10, 1000), 'x':np.random.rand(1000,)})
到
d = pd.DataFrame({'grp': np.random.randint(0, 10, 1000), 'x':np.random.rand(1000,)})
或
d = pd.DataFrame({'grp': np.random.randint(1, 11, 1000), 'x':np.random.rand(1000,)})
不确定你想在那里做什么。
干杯