python - 如何将 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 格式正确,但其他列不正确。
解决方案
将其转换为 int 使用 ->
df = df.astype('Int64')
推荐阅读
- sql - 如何在 oracle 中使用 regexp_replace 在 oracle 中允许重音字符?
- excel - 有没有办法搜索和隐藏所有不包含输入给定单元格的值的列?
- c - 为什么我的结构指针忘记了字符串?
- python-3.x - 有没有办法在框架内的标签上绑定 MouseWheel 事件
- go - 无法在生产中将文件上传到谷歌云存储
- jquery - 多个请求发送到服务器后 500 (Internal Server Error)
- java - 有没有办法使用 Maven Failsafe 插件来分叉 Java VM。我正在将 Junit 与 Serenity Runner 一起使用
- c#-8.0 - 当 C#8 发布时,它将在哪些框架上运行?
- dart - Flutter:密码自动填充
- php - 如何在 CodeIgniter 中获取关系数据