python - 有没有一种方法可以从两边都有不同数量的零包围的字符串中提取数字?

标签 python regex pandas

我必须从 csv 的一列中提取美元金额。美元金额被零包围。

美元

1.   0000000000565400.60000000008289.116000 
2.   0000000466175218.82000043978794.228000
3.   0000000000005720.77000000000198.431000 

从这三行中,我希望提取 565400.60, 466175218.82, 5720.77。我不想/不关心 8289.116、43978794.228、198.431

dtype 是一个非空对象。我尝试将其转换为字符串并提取前 20 个字符。我也尝试过将几个零替换为空。显然,我无法去掉所有的零,因为像 565400.60 这样的数字我需要零。即使我可以将其转换为我想要的数据类型,我也不知道如何提取不同数量的零。

dollars = str(dollars)
dollars = dollars.str.replace('0000000000','')

grab = dollars['Dollars'].astype(str).str[0:20]

预期:

Dollars
------------
1. 565400.60
2. 466175218.82
3. 5720.77

我的一些错误:

TypeError: string indices must be integers
AttributeError: 'str' object has no attribute 'str'

最佳答案

您可以使用str.index使用第一个 . 的位置进行索引:

s = '0000000000565400.60000000008289.116000 '
s[:s.index('.')+3]
# '565400.60'

关于python - 有没有一种方法可以从两边都有不同数量的零包围的字符串中提取数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56602212/

相关文章:

python - 如何构建trie树来解决这个解析算法

python - stats.scipy.chi2 返回值 0.0

python - 将 python 列表作为参数传递给 rpy2 中的 R 函数

perl 文件中的正则表达式 cdata

sql-server - 用于 MS SQL 的 pandas to_sql

python - Openpyxl:使用 load_workbook 时为 'ValueError: Max value is 14'

python - 关闭 nosetests 中的 sqlalchemy 警告

javascript - Javascript 中的正则表达式困惑

php - 由连字符和下划线连接的单词的正则表达式,同时保留标点符号

python - 在 DataFrame 中组合多个列