首页 > 解决方案 > 使用 df.groupby.sum() 保持 NaN

问题描述

我想在我的数据帧上使用 pd.group.sum() 函数,但NaN如果只有NaN这个组,则保留所有。我想分组df['pos']

我的DF样子是这样的。例如df['pos] = 54,只有NaN.

       pos    fak       date(1)      date(2)      date(3)      date(4)      date(5)     date(6)       date(7)      date(8)     date(9)
0        1     -5     0.000051     0.000000     0.001513          NaN     0.000000     0.002158     0.002076     0.013877     0.002629
1        1     -5     0.000000     0.000000     0.000000          NaN     0.000981     0.007182     0.011286     0.007320     0.014401
2        1     -5     0.000000     0.000000     0.000000          NaN     0.000000     0.016409     0.074470     0.070474     0.083052
3        1     -5     0.000186     0.000173     0.000357          NaN     0.004149     0.002142     0.014687     0.013459     0.015993
4        1     -5     0.000000     0.000000     0.000041          NaN     0.000185     0.012279     0.055842     0.056840     0.066203
...    ...    ...          ...          ...          ...          ...          ...          ...          ...          ...          ...
2155    54    -60          NaN          NaN          NaN     0.000000     0.000379          NaN     0.000463          NaN          NaN
2156    54    -60          NaN          NaN          NaN     0.000000     0.000000          NaN     0.000000          NaN          NaN
2157    54    -60          NaN          NaN          NaN     0.000273     0.000049          NaN     0.000350          NaN          NaN
2158    54    -60          NaN          NaN          NaN     0.001211     0.001595          NaN     0.000000          NaN          NaN
2159    54    -60          NaN          NaN          NaN     0.000000     0.000000          NaN     0.000000          NaN          NaN

我已经尝试过了df = df.groupby(['pos'],dropna=False, as_index=False).sum(),但它不起作用。

这是结果,NaNs 现在是 0.00000 。

       pos    fak     date(1)      date(2)      date(3)      date(4)      date(5)     date(6)       date(7)      date(8)     date(9)
0      1   -200     0.024563     0.032834     0.074156     0.000000     0.234502     0.362337     1.516347     1.527092     1.753685
1      2   -400     0.040524     0.053630     0.063485     0.000000     0.198094     0.276794     1.525365     1.841798     1.969436
2      3   -800     0.009291     0.031600     0.073616     0.000000     0.280969     0.328736     0.633346     0.642846     0.552222
3      4  -1200     0.064728     0.078212     0.092083     0.000000     0.129316     0.182042     0.377034     0.378554     0.386440
4      5  -1600     0.101865     0.000000     0.140608     0.000000     0.124510     0.137197     0.431861     0.484383     0.532031
5      6  -2400     0.000000     0.000000     0.000000     0.000000     0.008811     0.006334     0.003912     0.012864     0.020904
6      7   -200     0.031317     0.034211     0.056051     0.000000     0.220912     0.340917     1.433492     1.700108     0.000000
7      8   -400     0.028248     0.047995     0.062988     0.000000     0.115105     0.147000     1.472483     1.670148     0.000000
8      9   -800     0.009993     0.023724     0.028749     0.000000     0.244485     0.317650     0.773718     0.770574     0.000000
9     10  -1200     0.060934     0.050925     0.056541     0.000000     0.102622     0.151157     0.578781     0.548146     0.000000
10    11  -1600     0.000000     0.000000     0.042195     0.000000     0.037017     0.040787     0.137883     0.215892     0.000000
11    12  -2400     0.000000     0.000000     0.000000     0.000000     0.015000     0.015504     0.016443     0.013525     0.000000
12    13   -200     0.033684     0.071136     0.095553     0.000000     0.323579     0.394423     1.893914     1.991479     0.000000
13    14   -400     0.094615     0.136115     0.139518     0.000000     0.332107     0.311288     1.105235     0.000000     0.000000
14    15   -800     0.042394     0.072209     0.155419     0.000000     0.526857     0.553851     0.893223     0.000000     0.000000
15    16  -1200     0.059299     0.058083     0.065281     0.000000     0.129974     0.156188     0.331961     0.000000     0.000000
16    17  -1600     0.000000     0.000000     0.066679     0.000000     0.065574     0.077460     0.195380     0.000000     0.000000
17    18  -2400     0.000000     0.000000     0.000000     0.000000     0.033270     0.028225     0.025866     0.000000     0.000000
18    19   -200     0.042630     0.055218     0.080298     0.000000     0.391522     0.499725     1.403222     0.000000     0.000000
19    20   -400     0.025298     0.108026     0.162742     0.000000     0.227809     0.245723     1.077293     0.000000     0.000000
20    21   -800     0.037722     0.097791     0.152401     0.000000     0.715151     0.752843     1.114941     0.000000     0.000000
21    22  -1200     0.055918     0.056516     0.043803     0.000000     0.068511     0.132397     0.292633     0.000000     0.000000
22    23  -1600     0.000000     0.000000     0.020747     0.000000     0.038104     0.013681     0.042439     0.000000     0.000000
23    24  -2400     0.000000     0.000000     0.000000     0.000000     0.014000     0.011274     0.011610     0.000000     0.000000
24    25   -200     0.022679     0.041653     0.100295     0.000000     0.392581     0.500391     1.728872     0.000000     0.000000
25    26   -400     0.036260     0.072243     0.103652     0.000000     0.224679     0.200902     1.019090     0.000000     0.000000
26    27   -800     0.033814     0.053434     0.117975     0.000000     0.698710     0.729693     1.107308     0.000000     0.000000
27    28  -1200     0.056721     0.072790     0.066775     0.000000     0.118926     0.162361     0.211414     0.000000     0.000000
28    29  -1600     0.000000     0.000000     0.045459     0.000000     0.040460     0.036973     0.070029     0.000000     0.000000
29    30  -2400     0.000000     0.000000     0.000000     0.000000     0.015434     0.015848     0.011192     0.000000     0.000000
30    31   -200     0.023094     0.043426     0.098801     0.000000     0.260836     0.416549     1.395852     0.000000     0.000000
31    32   -400     0.167295     0.276138     0.296398     0.000000     0.311054     0.358546     1.103263     0.000000     0.000000
32    33   -800     0.094436     0.136444     0.196443     0.000000     0.702597     0.711211     0.870650     0.000000     0.000000
33    34  -1200     0.064289     0.049042     0.066301     0.000000     0.130224     0.180901     0.311792     0.000000     0.000000
34    35  -1600     0.000000     0.000000     0.013390     0.000000     0.023405     0.021575     0.053457     0.000000     0.000000
35    36  -2400     0.000000     0.000000     0.000000     0.000000     0.011907     0.013353     0.015592     0.000000     0.000000
36    37   -200     0.043485     0.085988     0.121368     0.000000     0.199337     0.267284     1.413241     0.000000     0.000000
37    38   -400     0.041560     0.128212     0.197058     0.000000     0.288968     0.346425     0.909868     0.000000     0.000000
38    39   -800     0.069200     0.144725     0.226132     0.000000     0.820162     0.831910     1.065590     0.000000     0.000000
39    40  -1200     0.072846     0.091395     0.102750     0.000000     0.221067     0.000000     0.332840     0.000000     0.000000
40    41  -1600     0.000000     0.000000     0.035349     0.000000     0.053643     0.000000     0.092243     0.000000     0.000000
41    42  -2400     0.000000     0.000000     0.000000     0.000000     0.014107     0.000000     0.036602     0.000000     0.000000
42    43   -200     0.053394     0.116654     0.159466     0.000000     0.240559     0.000000     1.509772     0.000000     0.000000
43    44   -400     0.072888     0.140678     0.152421     0.286404     0.325441     0.000000     0.736555     0.000000     0.000000
44    45   -800     0.041506     0.120343     0.182201     0.522677     0.664318     0.000000     0.935842     0.000000     0.000000
45    46  -1200     0.083877     0.100040     0.094347     0.096715     0.144822     0.000000     0.342716     0.000000     0.000000
46    47  -1600     0.000000     0.000000     0.104341     0.081887     0.092839     0.000000     0.136126     0.000000     0.000000
47    48  -2400     0.000000     0.000000     0.000000     0.011290     0.019646     0.000000     0.019559     0.000000     0.000000
48    49   -200     0.072106     0.174334     0.189319     0.366622     0.307984     0.000000     1.292118     0.000000     0.000000
49    50   -400     0.057340     0.112154     0.156192     0.256193     0.301292     0.000000     0.739956     0.000000     0.000000
50    51   -800     0.048841     0.092458     0.176346     0.443977     0.589220     0.000000     0.820428     0.000000     0.000000
51    52  -1200     0.053696     0.050076     0.066013     0.053777     0.084815     0.000000     0.318395     0.000000     0.000000
52    53  -1600     0.000000     0.000000     0.036317     0.034720     0.034823     0.000000     0.052545     0.000000     0.000000
53    54  -2400     0.000000     0.000000     0.000000     0.007626     0.012516     0.000000     0.010274     0.000000     0.000000

有没有人有想法或解决方法?

标签: pythonpandasdataframepandas-groupbynan

解决方案


推荐阅读