我必须从 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/