我有一个数据表,其中有一行数据是字符串,但我希望使用下面的行将该行转换为浮点型:
uomorig_df['Conversion'] = uomorig_df['Conversion'].astype(float, errors = 'raise')
它一直在出错,所以我认为在那一行的某个地方有一个字母数字字符,我希望能识别那一行,我怎么才能在一行数据中找到字母呢?
我想试试RegEx或Pandas...但有点迷路了.
我有一个数据表,其中有一行数据是字符串,但我希望使用下面的行将该行转换为浮点型:
uomorig_df['Conversion'] = uomorig_df['Conversion'].astype(float, errors = 'raise')
它一直在出错,所以我认为在那一行的某个地方有一个字母数字字符,我希望能识别那一行,我怎么才能在一行数据中找到字母呢?
我想试试RegEx或Pandas...但有点迷路了.
使用列表理解,您可以非常容易地使用enumerate()
遍历索引和uomorig_df['Conversion']
的值,将这些值转换为字符串,并判断这些值是否为具有.replace('.', '', 1).isdigit()
的有效浮点数:
import pandas as pd
# example dataframe
uomorig_df = pd.DataFrame({
"Conversion": [1, 2, 3, 4, 'A', 6, 7, 8]
})
letters = [val for val in enumerate(uomorig_df['Conversion'])
if not str(val[1]).replace('.', '', 1).isdigit()]
print(letters) # => [(4, 'A')]
列表理解的结果是(index, value)
形式的元组,其中index
是行中字母值的索引,value
是非数值.