熊猫混合型到整数

时间:2016-05-10 18:40:31

标签: python-3.x pandas

给出以下数据框:

import pandas as pd
df = pd.DataFrame(
        {'A':['A','B','C','D'],
         'C':['1','12','*','8']
        })
df

    A   C
0   A   1
1   B   12
2   C   *
3   D   8

我想删除'*'的所有实例并将其余部分转换为整数。 在我的实际数据中可能存在“nan”或“NaN”的一些情况。

2 个答案:

答案 0 :(得分:2)

您可以使用pd.to_numericC列转换为数字值。传递errors='coerce'告诉pd.to_numeric将非数字值设置为NaN

import pandas as pd

df = pd.DataFrame(
        {'A':['A','B','C','D'],
         'C':['1','12','*','8'] })

df['C'] = pd.to_numeric(df['C'], errors='coerce')
print(df)

打印

   A     C
0  A   1.0
1  B  12.0
2  C   NaN
3  D   8.0

由于NaN值仅允许在具有浮点dtype(或object dtype)的列中,因此不能将该列设置为整数dtype。

答案 1 :(得分:0)

int()是Python标准内置函数,用于将字符串转换为整数值。使用int()将列转换为int。

对于解析整数而不是浮点数,可以对字符串对象使用isdigit()函数。

如果在int()之后运行isdigit(),则可以将数据过滤到列C的值为整数的行。