尝试将Python中带有字符串的列转换为浮点时出错

尝试将Python中带有字符串的列转换为浮点时出错,python,regex,python-2.7,pandas,Python,Regex,Python 2.7,Pandas,我有一个名为“market_cap(in_us_$)”的专栏,其值如下: $5.41 $18,160.50 $9,038.20 $8,614.30 $368.50 $2,603.80 $6,701.50 $8,942.40 我的最终目标是能够基于特定的数值进行过滤(例如,>2000.00) 通过阅读本网站中的其他问题,我遵循以下说明: cleaned_data['market_cap_(in_us_$)'].replace( '$', '', regex = True ).as

我有一个名为“market_cap(in_us_$)”的专栏,其值如下:

$5.41 
$18,160.50 
$9,038.20 
$8,614.30 
$368.50 
$2,603.80 
$6,701.50 
$8,942.40 
我的最终目标是能够基于特定的数值进行过滤(例如,>2000.00)

通过阅读本网站中的其他问题,我遵循以下说明:

cleaned_data['market_cap_(in_us_$)'].replace( '$', '', regex = True ).astype(float)
但是,我收到以下错误

TypeError: replace() got an unexpected keyword argument 'regex'
如果从replace参数中删除“regex=True”,则

ValueError: could not convert string to float: $5.41

那么,我该怎么办呢?

这里给出了正确的正则表达式,因为您要删除
$

In [7]:

df['market_cap_(in_us_$)'].replace('[\$,]', '', regex=True).astype(float)
Out[7]:
0        5.41
1    18160.50
2     9038.20
3     8614.30
4      368.50
5     2603.80
6     6701.50
7     8942.40
Name: market_cap_(in_us_$), dtype: float64

但是,由于出现了
关键字参数'regex'
错误,您必须使用非常旧的版本,并且应该进行更新。

此处给出了要使用的正确正则表达式,因为您要删除
$

In [7]:

df['market_cap_(in_us_$)'].replace('[\$,]', '', regex=True).astype(float)
Out[7]:
0        5.41
1    18160.50
2     9038.20
3     8614.30
4      368.50
5     2603.80
6     6701.50
7     8942.40
Name: market_cap_(in_us_$), dtype: float64

但是,由于您得到了
关键字参数'regex'
错误,您必须使用非常旧的版本,并且应该更新。

问题是,
$
是正则表达式中的一个特殊字符,表示字符串的开头,因此仅替换字符串的开头不会替换任何内容

您必须在序列上使用
str.replace
(使用文本$and,):

您可能希望使用整美分而不是浮动美元(删除文字):


问题是,
$
是正则表达式中的一个特殊字符,表示字符串的开头,因此只替换字符串的开头不会替换任何内容

您必须在序列上使用
str.replace
(使用文本$and,):

您可能希望使用整美分而不是浮动美元(删除文字):


您正在运行哪个版本的
pandas
?(
print pd.\uuuuu version\uuuuuuu
)我有0.11.0版,在你的建议后,我将其更新为0.14.0版。谢谢。您正在运行哪个版本的
pandas
?(
print pd.\uuuuu version\uuuuuuu
)我有0.11.0版,在你的建议后,我将其更新为0.14.0版。谢谢
In [13]: s.replace('\$|,|\.', '', regex=True).astype('int64')
Out[13]:
0        541
1    1816050
2     903820
3     861430
4      36850
5     260380
6     670150
7     894240
dtype: int64