gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:06:18 25 4
gpt4 key购买 nike

只是一个(有点)快速的问题 - 如果我有一个数据框,其中有一列由 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'}]

我似乎找不到任何关于此的引用,并且一些见解将不胜感激。谢谢!

最佳答案

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

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

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)

关于python - (Python) 如何修复数据帧列值中的数字表示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55314576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com