试图确定列条目的大多数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)