(Python)如何修复数据框列值中的数字表示错误

斯托纳

只是一个(有点)简单的问题-如果我有以下形式的数列中的数据帧1.305.000, 4.65, 99.9, 443.111.34000,我怎样才能将它们转换为“正确”的格式:1305.000, 4.65, 99.9, 443111.34000

如果有帮助,则从.csv文件的某一列中获取值,例如“总净收入”:

以代码块形式:

Day Service Total Net Revenue
0   1   te  1.305.000
1   1   as  4.65
2   2   qw  99.9
3   3   al  443.111.34000
4   6   al  443.111.34000
5   6   te  1.305.000
6   7   pp  200
7   7   te  1.305.000
8   7   al  443.111.34000
9   7   te  1.305.000

另一种基于反馈的形式:

[{'Day': 1, 'Service': 'te', 'Total Net Revenue': '1.305.000'},
 {'Day': 1, 'Service': 'as', 'Total Net Revenue': '4.65'},
 {'Day': 2, 'Service': 'qw', 'Total Net Revenue': '99.9'},
 {'Day': 3, 'Service': 'al', 'Total Net Revenue': '443.111.34000'},
 {'Day': 6, 'Service': 'al', 'Total Net Revenue': '443.111.34000'},
 {'Day': 6, 'Service': 'te', 'Total Net Revenue': '1.305.000'},
 {'Day': 7, 'Service': 'pp', 'Total Net Revenue': '200'},
 {'Day': 7, 'Service': 'te', 'Total Net Revenue': '1.305.000'},
 {'Day': 7, 'Service': 'al', 'Total Net Revenue': '443.111.34000'},
 {'Day': 7, 'Service': 'te', 'Total Net Revenue': '1.305.000'}]

我似乎找不到任何参考,一些见识将受到深深的赞赏。谢谢!

_

这不是一个大熊猫问题,它实际上是在询问如何将看起来奇怪的字符串转换为数字(标记:数字格式)。

以下函数会将这些字符串转换为所需的数字:

import unittest


def cleanup(s: str) -> float:
    parts = s.split('.')
    if len(parts) > 1:
        s = ''.join(parts[:-1]) + '.' + parts[-1]
    return float(s)


class TestCleanup(unittest.TestCase):

    def test_cleanup(self):
        self.assertEqual(200, cleanup('200'))
        self.assertEqual(4.65, cleanup('4.65'))
        self.assertEqual(1305, cleanup('1.305.000'))
        self.assertEqual(443111.34, cleanup('443.111.34000'))

您可能会考虑使用Decimal那些是否为货币数字,这会激发“缩放整数”方法。

对于现有数据框.apply()cleanup()函数很简单

df['numeric_revenue'] = df['total_net_revenue'].apply(cleanup)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Python 中一次根据唯一值的数量将 Pandas 数据框列的值转换为数字表示?

如何修复数据框的“索引超出范围”错误?

如何将熊猫数据框从基于字符串的分类列转换为数字表示形式

修复数据框中的希腊字母 - Python 2.7

如何在Python中修复数据类的TypeError?

如何获取数据框列中数字周围的值?

仅从数据框的列中识别数字值-Python

如何处理 Python 数据框中包含日期、数字、字符串值的列

Pandas 修复数据框

如何提高NumPy中FEM计算的数字表示精度?

修复数据框中的重复索引名称

如何从Pandas数据框中的列将列拆分为字母值和数字值?

在现有数据框中添加一列重复数字

如何在python中从具有实数的数据框中制作包含复数的数据框?

如何修复弹簧数据中的“错误:错误的DATETIME值:%%”?

Python如何替换数据框中的列值

如何在pandas数据框Python3中使用多列将复数转换为幅度和角度?

如何使用旧数据框中的信息预测新 Python 数据框中列的值

查找不同基础中的数字表示

修复数据框的缺失行

如何使用列表中的每个值重复数据框中的行?

如何根据数据框的列中的数字分配分类值?

如何仅用中值替换数字列中的所有 NA 值并更新数据框

如何添加一列以在数据框中记录重复数据?

如何修复数据表列中的排序发布日期?

如何修复角度下拉列表中的重复数据

如何修复格式错误的数据框

如何小写数据框中的列值?

如何合并数据框列中的值