gpt4 book ai didi

python - 包含字符串和 float 的 Pandas Dataframe 列

转载 作者:行者123 更新时间:2023-11-28 17:30:46 25 4
gpt4 key购买 nike

我有一个数据框,其中一列包含字符串和 float 。

名为“Value”的列具有“AAA”、“Korea, Republic of”、“123,456.78”和“5000.00”等值。

前两个值显然是字符串,最后一个显然是 float 。第三个值也应该是一个 float ,但由于有逗号,我的代码的下一步将它视为一个字符串。

有没有一种简单的方法可以让我删除那些真正是 float 的值的逗号,但为真正的字符串值保留逗号?所以“Korea, Republic of”保留,但“123,456,78”转换为“123456.78”。

谢谢。

最佳答案

首先,您的 Pandas 列不包含字符串和 float ,因为列包含同类类型。如果一个条目是一个字符串,那么所有条目都是。您可以通过执行以下操作来验证这一点(假设 DataFrame 是 df 并且列是 c):

>>> df.dtypes

并注意到类型应该类似于 Object

话虽如此,您可以将字符串列转换为不同的字符串列,其中代表数字的字符串已删除逗号。这可能对进一步的操作很有用,例如,当您希望查看哪些条目可以转换为 float 时。这可以按如下方式完成。

首先,编写如下函数:

import re

def remove_commas_from_numbers(n):
r = re.compile(r'^(\d+(?:,\d+)?.+)*$')
m = r.match(n)
if not m:
return n
return n.replace(',', '')

remove_commas_from_numbers('1,1.')

然后,您可以执行以下操作:

>>> df.c = df.c.apply(remove_commas_from_numbers)

再次强调,df.c 的类型是字符串。

关于python - 包含字符串和 float 的 Pandas Dataframe 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522891/

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