You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的DataFrame打印呈横向格式?如何调整为纵向展示?

解决KNN回归Performance DataFrame的格式与精度问题

我来帮你搞定这个DataFrame格式混乱和精度冗余的问题!你遇到的其实是两个小问题叠加导致的:一是嵌套数组被当作单个单元格传入DataFrame,所有数据挤在一行;二是Python浮点数二进制存储特性带来的精度溢出。下面直接给你解决方法和代码示例:

问题根源拆解

  • 当你把形状为(n,1)的二维数组(或嵌套列表)直接传给Pandas的DataFrame时,它会把整个数组/列表当作一个单元格的值,导致所有数据横向堆叠在一行里。
  • 像0.8000000000000007这种奇怪的数值,是浮点数在二进制存储时的精度限制导致的,属于Python常见现象,不是计算错误。

解决方案步骤

1. 展平嵌套数组/列表

不管你的数据是numpy数组还是Python嵌套列表,都需要先转成一维序列,让每个值对应DataFrame的一行:

  • 若是numpy数组:用.flatten()或.ravel()方法(两者效果类似,flatten()返回副本,ravel()返回视图)
  • 若是Python嵌套列表:用列表推导式提取每个子列表的唯一元素

2. 处理浮点数精度冗余

用Pandas的.round()方法直接指定保留的小数位数,就能去掉冗余的精度。

完整代码示例

先看你可能的错误写法:

import pandas as pd
import numpy as np
from sklearn.neighbors import KNeighborsRegressor

# 模拟你的训练/测试数据
X_train = np.array([[1], [2], [3], [4], [5], [6]])
y_train = np.array([[5], [7], [9], [11], [13], [15]])
X_test = np.array([[7], [8]])
y_test = np.array([[10], [14]])

# 训练KNN模型
knn = KNeighborsRegressor(n_neighbors=1)
knn.fit(X_train, y_train)
preds = knn.predict(X_test)

# 错误的DataFrame构建方式
performance = pd.DataFrame({
    'True Value': y_test,
    'Prediction': preds,
    'Error': y_test - preds
})
print(performance)

这段代码会输出你看到的横向格式和冗余精度。

现在看修正后的代码:

# 修正:展平数组并处理精度
true_values = y_test.flatten()
predictions = preds.flatten()
errors = (y_test - preds).flatten()

# 构建正确的DataFrame并保留1位小数
performance = pd.DataFrame({
    'True Value': true_values,
    'Prediction': predictions,
    'Error': errors
}).round(1)

print(performance)

运行后会得到你期望的输出:

True Value  Prediction  Error
0          10         9.2    0.8
1          14         9.2    4.8

如果是嵌套列表的情况

如果你的y_test和preds是Python嵌套列表(比如[[10], [14]]),可以用列表推导式展平:

y_test = [[10], [14]]
preds = [[9.2], [9.2]]

true_values = [val[0] for val in y_test]
predictions = [val[0] for val in preds]
errors = [true - pred for true, pred in zip(true_values, predictions)]

performance = pd.DataFrame({
    'True Value': true_values,
    'Prediction': predictions,
    'Error': errors
}).round(1)

效果和上面完全一致。

内容的提问来源于stack exchange,提问作者Tony Cardinal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 18:30:59