首页 > 解决方案 > 如何在 Python 中使用包含冒号(:) 和空格的数据框将对象转换为整数?

问题描述

数据包含冒号(:) 和空格,所以所有的列类型都是对象。如何将所有列对象转换为整数或浮点数。

我试试这个,但它不起作用。

df = pd.concat([df[col].str.split()
                       .str[0]
                       .str.replace(':','').astype(float) for col in df], axis=1)
df['col'] = df['col'].astype(int)
print(df)
AttributeError: Can only use .str accessor with string values!

标签: pythonstringobjectinteger

解决方案


您可以使用正则表达式提取数字,然后将其转换为整数。请看下面的代码:

import re

def to_integer(x):
    result = re.findall('[0-9]+', str(x))
    num = ''.join(result)
    return int(num)

df['col'] = df['col'].apply(to_integer)


推荐阅读