Getting NaN’s instead of the correct values inside dataframe column
我使用以下语法创建了一个零数据框:
1
2 3 4 5 6 7 |
ltv = pd.DataFrame(data=np.zeros([actual_df.shape[0], 6]),
columns=[‘customer_id’, ‘actual_total’, ‘predicted_num_purchases’, ‘predicted_value’, ‘predicted_total’, ‘error’], dtype=np.float32) |
效果如预期般完美
1
2 3 4 |
customer_id | actual_total | predicted_num_purchases | predicted_value | predicted_total | error
0 0.0 0.0 0.0 0.0 0.0 0.0 1 0.0 0.0 0.0 0.0 0.0 0.0 2 0.0 0.0 0.0 0.0 0.0 0.0 |
当我运行这个语法时:
1
|
ltv[‘customer_id’] = actual_df[‘customer_id’]
|
我得到了
注意:我还检查了
你需要两个相同的索引值(并且两个数据帧的长度也相同)。
所以第一个解决方案是在
1
2 |
actual_df = actual_df.reset_index(drop=True)
ltv[‘customer_id’] = actual_df[‘customer_id’] |
或将参数
1
2 3 4 5 6 7 8 9 10 |
ltv = pd.DataFrame(data=np.zeros([actual_df.shape[0], 6]), columns=[‘customer_id’, ‘actual_total’, ‘predicted_num_purchases’, ‘predicted_value’, ‘predicted_total’, ‘error’], dtype=np.float32, index=actual_df.index) ltv[‘customer_id’] = actual_df[‘customer_id’] |
另一个选项(比 jezrael 的好答案更复杂)是使用
1
|
ltv = pd.concat([ltv.drop(columns=[‘customer_id’]),actual_df[[‘customer_id’]]],axis=1,ignore_index=True)
|
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/267944.html