确定 dtype 对象应为 Int 还是浮点数



试图确定列条目的大多数dtype是什么。我正在自动化一个数据帧处理函数,该函数确定对象类是充满strings还是充满int or float但其中有未知strings。我知道通过键入以下内容,可以识别列的数据类型,但是条目呢。

import pandas as pd
df = pd.read_csv('data.csv')
df.dtypes

输出

Name       object
Age        object
dtype: object

识别列是否标记不正确的最佳方法是什么。 示例数据在这里

df.Age
Out[25]: 
0          25
1          23
2          24
3          26
4          30
5          18
6          22
7          19
8          23
9          20
10    Refused
11         23
12         29
Name: Age, dtype: object

您可以通过 DataFrame.select_dtypes 查看对象列(显然是strings(,然后尝试使用参数 errors='coerce' 转换to_numeric - 它将不可解析的值转换为 NaN s,因此使用 Series.any 测试是否至少有一个非NaN Series.notna

for c in df.select_dtypes(object).columns:
    if pd.to_numeric(df[c], errors='coerce').notna().any():
        print (c)

最新更新