抱歉,在移动的上的格式不好。
我有一个大型的时间序列数据集,有4列。Time A B C
我想从这个数据填充一个新的2D数组,其中;
行数由A(x轴)的唯一值的数量给出。
列数由B(y轴)的唯一值的数量给出。
假设列和行值按升序排列,每个“单元格”中的值应该是C(z轴)的相应值。
如果不存在对应的值,则“单元格”应为None
如果存在多个相应值,则单元格应包含平均值。
对于上下文,我想使用此数据使用Plotly绘制等高线图,但需要最大限度地减少这些图表类型固有的插值量,None valuea将显示空白。我知道我还需要为A(x轴)和C(y轴)定义一个相应的2d数组。
有没有一个python函数可以轻松地做到这一点,而无需手动声明唯一值的数量?
更新-已解决
最后我使用pivot_table和aggfunc来设置重复项的处理方式,如下所示:
pivot_table = pd.pivot_table(df, values='C', index='B', columns='A', aggfunc=np.mean)
z_values = pivot_table.values
x_values = pivot_table.columns.values
y_values = pivot_table.index.values
self.fig.add_trace(go.Contour(x=x_values, y=y_values, z=z_values, connectgaps=False))
1条答案
按热度按时间4c8rllxm1#
事实上,我认为循环通过 Dataframe 将是最简单的。Pivot无法处理重复项...
类似这样的东西(我没有测试确切的语法):