我对Pyspark还是陌生的。我有一个数据框,我想创建一个第三列,其RMSE的计算范围为from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=3, cols=1,
shared_xaxes=True,
vertical_spacing=0.02)
fig.add_trace(go.Scatter(x=[0, 1, 2], y=[10, 11, 12]),
row=3, col=1)
fig.add_trace(go.Scatter(x=[2, 3, 4], y=[100, 110, 120]),
row=2, col=1)
fig.add_trace(go.Scatter(x=[3, 4, 5], y=[1000, 1100, 1200]),
row=1, col=1)
fig.update_layout(height=600, width=600,
title_text="Stacked Subplots with Shared X-Axes")
fig.show()
和col1
。我正在使用用户定义的lambda函数进行RMSE计算,但始终收到此错误col2
AttributeError: 'int' object has no attribute 'mean'
如何最好地解决此问题? 我还想找到RMSE /平均值,平均绝对误差,平均绝对误差/平均值,中位数绝对误差和中位数误差,但是一旦我弄清楚如何计算一个,就应该在其他方面表现出色。>
答案 0 :(得分:1)
我认为比您有些困惑。 RMSE是由一连串的点计算得出的,因此您不必为两列中的每个值都计算得出。 我认为您必须使用每一列中的所有值来计算RMSE。
这可能有效:
pow = udf(lambda x: x**2)
rmse = (sum(pow(old_df['col1'] - old_df['col2']))/len(old_df))**.5
print(rmse)
答案 1 :(得分:1)
在这种情况下,我认为您不需要it.only ('should work with dynamic state change', async () => {
wrapper.setProps({
defaultState: true
});
await wrapper.vm.$nextTick();
// shows the true
console.log( wrapper.vm.defaultState );
// should be true but i get false
console.log( wrapper.vm.currentState );
});
。我认为仅使用udf
是可能的。
我可以为您提出以下未经测试的选择
pyspark.sql.functions
使用相同的逻辑,您可以获得其他性能统计信息