尝试将Python中带有字符串的列转换为浮点时出错
我有一个名为“market_cap(in_us_$)”的专栏,其值如下:尝试将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
$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