pandas interpolate不填充空值

2024-05-23 13:50:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这段代码,我把我的数据加载到一个数据帧中,我试图用.interpolate来填充naN值,而不是用0替换它

我的数据框如下所示:

    weight  height  wc  hc  FBS HBA1C
0   NaN NaN NaN NaN NaN NaN
1   55.6    151.0   NaN NaN 126.0   NaN
2   42.8    151.0   73.0    79.0    NaN NaN
3   60.8    155.0   NaN NaN 201.0   NaN
4   NaN NaN NaN NaN NaN NaN
5   60.0    NaN 87.0    92.0    NaN NaN
6   NaN NaN NaN NaN NaN NaN
7   NaN NaN NaN NaN NaN NaN
8   NaN NaN NaN NaN 194.0   NaN
9   57.0    158.0   95.0    90.0    NaN NaN
10  46.0    NaN 83.0    91.0    223.0   NaN
11  NaN NaN NaN NaN NaN NaN
12  NaN NaN NaN NaN NaN NaN
13  58.5    164.0   NaN NaN NaN NaN
14  62.0    154.0   80.5    100.0   NaN NaN
15  NaN NaN NaN NaN NaN NaN
16  57.0    152.0   NaN NaN NaN NaN
17  62.4    153.0   88.0    99.0    NaN NaN
18  NaN NaN NaN NaN NaN NaN
19  48.0    146.0   NaN NaN NaN NaN
20  68.7    NaN NaN NaN NaN NaN
21  49.0    146.0   NaN NaN NaN NaN
22  NaN NaN NaN NaN NaN NaN
23  NaN NaN NaN NaN NaN NaN
24  70.2    161.0   NaN NaN NaN NaN
25  70.4    161.0   93.0    68.0    NaN NaN
26  61.8    143.0   91.0    98.0    NaN NaN
27  70.4    NaN NaN NaN NaN NaN
28  70.1    144.0   100.0   103.0   NaN NaN
29  NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ...
318 49.0    146.0   92.0    89.0    NaN NaN
319 64.7    145.0   87.0    107.0   NaN NaN
320 55.5    149.0   81.0    101.0   NaN NaN
321 55.4    145.0   87.0    96.0    NaN NaN
322 53.1    153.0   83.0    96.0    NaN NaN
323 52.1    147.0   89.0    92.0    NaN NaN
324 68.9    167.0   96.0    100.0   NaN NaN
325 NaN NaN NaN NaN NaN NaN
326 57.0    142.0   100.0   101.0   NaN NaN
327 72.5    163.0   98.0    95.0    NaN NaN
328 73.5    157.0   94.0    114.0   NaN NaN
329 61.0    160.0   90.0    89.5    NaN NaN
330 49.0    150.0   80.0    90.0    NaN NaN
331 50.0    150.0   83.0    90.0    NaN NaN
332 67.6    155.0   92.0    103.0   NaN NaN
333 NaN NaN NaN NaN NaN NaN
334 78.7    162.0   99.0    101.0   NaN NaN
335 74.5    155.0   98.0    110.0   NaN NaN
336 68.0    152.0   85.0    93.0    NaN NaN
337 67.0    152.0   NaN NaN 179.1   NaN
338 NaN NaN NaN NaN 315.0   NaN
339 38.0    145.0   66.0    NaN 196.0   NaN
340 50.0    148.0   NaN NaN 133.0   NaN
341 73.5    NaN NaN NaN NaN NaN
342 74.5    NaN NaN NaN NaN NaN
343 NaN NaN NaN NaN NaN NaN
344 67.0    152.0   106.0   NaN NaN NaN
345 52.0    145.0   94.0    NaN NaN NaN
346 52.0    159.0   89.0    NaN NaN NaN
347 67.0    153.0   92.0    91.0    NaN NaN

我的代码:

^{pr2}$

df1看起来像这样

weight  height  wc  hc  FBS HBA1C
    0   NaN NaN NaN NaN NaN NaN
    1   55.600000   151.0   NaN NaN 126.000000  NaN
    2   42.800000   151.0   73.000000   79.000000   163.500000  NaN
    3   60.800000   155.0   77.666667   83.333333   201.000000  NaN
    4   60.400000   155.5   82.333333   87.666667   199.600000  NaN
    5   60.000000   156.0   87.000000   92.000000   198.200000  NaN
    6   59.250000   156.5   89.000000   91.500000   196.800000  NaN

运行代码后,它没有用值替换naN值,而是用更多的小数点替换值。在


Tags: 数据代码hcnandf1heightweightwc
1条回答
网友
1楼 · 发布于 2024-05-23 13:50:48

看了这些数据,我就相信插值值是不合适的。每一行代表不同人的一些属性。不能将缺少的值(例如,weight)基于相邻行。我知道您需要处理NaN,因为在构建许多类型的模型时,大部分数据都是无用的。在

相反,也许你应该用mean()或median()来填充。这里的简单数据框缺少一些值。在

df
Out[58]: 
   height  weight
0    54.0   113.0
1    61.0   133.0
2     NaN   129.0
3    48.0     NaN
4    60.0   107.0
5    51.0   114.0
6     NaN   165.0
7    51.0     NaN
8    53.0   147.0
9     NaN   124.0

要用列的mean()替换缺少的值:

^{pr2}$

当然,您可以轻松地使用median()或其他对数据有意义的方法。在

相关问题 更多 >