首页 > 解决方案 > 如何将 cumsum() 结果值从浮点数转换为整数?

问题描述

我有这个数据框:

              DP1           DP2           DP3           DP4           DP5           DP6           DP7           DP8           DP9          DP10          DP11          DP12
OP1     2197389.0  8.334035e+06  1.416121e+07  2.112566e+07  2.353240e+07  2.521456e+07  2.626701e+07  2.815038e+07           NaN  2.894672e+07           NaN           NaN
OP2     8859402.0  3.405393e+07  5.225385e+07  6.641002e+07  7.142158e+07  7.567666e+07  7.919994e+07  8.301265e+07  8.549990e+07  8.619976e+07  8.682675e+07  8.732952e+07
OP3    14787376.0  5.051932e+07  7.526720e+07  1.109929e+08  1.197162e+08  1.261469e+08  1.338973e+08  1.354751e+08  1.388290e+08  1.414128e+08  1.422856e+08           NaN
OP4    21493250.0  6.590146e+07  1.171731e+08  1.638118e+08  1.782883e+08  1.900619e+08  1.986440e+08  2.007501e+08  2.012454e+08  2.049792e+08  2.092219e+08  2.098224e+08
OP5    21700836.0  7.355879e+07  1.157970e+08  1.607273e+08  1.744825e+08  1.836202e+08  1.976620e+08  2.020817e+08  2.048174e+08  2.067469e+08  2.104735e+08  2.123310e+08
OP6    27197016.0  8.379447e+07  1.368874e+08  1.799347e+08  1.973877e+08  2.126034e+08  2.240213e+08  2.267334e+08  2.280336e+08  2.326177e+08  2.366704e+08  2.387043e+08
OP7    28312408.0  7.638481e+07  1.235895e+08  1.656576e+08  1.802400e+08  1.934127e+08  2.064300e+08  2.095814e+08  2.135559e+08  2.163695e+08  2.182680e+08  2.204437e+08
OP8    21161654.0  7.164625e+07  1.173728e+08  1.507630e+08  1.614412e+08  1.762703e+08  1.874506e+08  1.915259e+08  1.943434e+08  1.981648e+08  2.007807e+08  2.011242e+08
OP9    22030953.0  7.391936e+07  1.188640e+08  1.502157e+08  1.577981e+08  1.702076e+08  1.790455e+08  1.829043e+08  1.843653e+08  1.877471e+08  1.897388e+08  1.912022e+08
OP10   19800999.0  5.958667e+07  1.000103e+08  1.350046e+08  1.467698e+08  1.602286e+08  1.708699e+08  1.731278e+08  1.743493e+08  1.787757e+08  1.806712e+08           NaN
OP11   26744235.0  7.160570e+07  1.086724e+08  1.423295e+08  1.527055e+08  1.640139e+08  1.719841e+08  1.747707e+08  1.763537e+08  1.861115e+08           NaN           NaN
OP12   14967698.0  4.827327e+07  8.318845e+07  1.093670e+08  1.209002e+08  1.287389e+08  1.429479e+08  1.450573e+08  1.530010e+08           NaN           NaN           NaN
OP13   15860127.0  5.116424e+07  8.653871e+07  1.143786e+08  1.280226e+08  1.368423e+08  1.446488e+08  1.532531e+08           NaN           NaN           NaN           NaN
OP14   16421831.0  4.605250e+07  7.286290e+07  9.995756e+07  1.093182e+08  1.195463e+08  1.367919e+08           NaN           NaN           NaN           NaN           NaN
OP15   15452224.0  4.796981e+07  7.958047e+07  1.084661e+08  1.166676e+08  1.431275e+08           NaN           NaN           NaN           NaN           NaN           NaN
OP16   12994042.0  4.893026e+07  7.764653e+07  1.025860e+08  1.350187e+08           NaN           NaN           NaN           NaN           NaN           NaN           NaN
OP17   14602038.0  4.720123e+07  7.812935e+07  1.341007e+08           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN
OP18   17740235.0  5.648562e+07  1.517327e+08           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN
OP19   23064250.0  1.879731e+08           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN
OP20  221345563.0           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN           NaN
OP21  566733526.0  1.424700e+09  2.119047e+09  2.676880e+09  2.868863e+09  3.035883e+09  3.173159e+09  3.216514e+09  3.245888e+09  3.284416e+09  3.306339e+09  3.315317e+09 

上面的数据框是使用 cumsum() 创建的。这里的结果是浮点数的形式。值是正确的,但它是浮点格式。

我需要如下:

          DP1          DP2          DP3          DP4          DP5  
 OP1     2197389.0    8334035.0   14161207.0   21125657.0   23532404.0   ...
 OP2     8859402.0   34053933.0   52253851.0   66410020.0   71421580.0   ...
 OP3    14787376.0   50519318.0   75267203.0  110992853.0  119716151.0   ...
 OP4    21493250.0   65901456.0  117173071.0  163811817.0  178288346.0   ...
 OP5    21700836.0   73558786.0  115797026.0  160727304.0  174482464.0   ...
 ...
 ...

例如 8.334035 值将更改为 8334035。D1 格式正确,但其他列不正确。

标签: pythonpandasdataframe

解决方案


将其转换为 int 使用 ->

df = df.astype('Int64')

推荐阅读