【发布时间】:2020-12-15 05:56:30
【问题描述】:
我想构建一个算法,可以检测数据框中哪些列是分类列,哪些列是数字列。
让我们看一下这个数据集(仅作为示例):
df = pd.DataFrame({"ID": [12324, 26342, 62438], "passengerClass": [1, 2, 2], "nationality": ["FR", "ES", "US"]})
我可以假设分类数据是对象/类别类型:
df.dtypes()
正如我们所见,“国籍”列被检测为一个很棒的对象类型。 问题是“ID”列和“passengerClass”被检测为 int64 类型但属于分类。
有没有办法检测这些列也是分类的? (我也考虑过唯一值,但如果我们测量很多汽车的速度,它在任何时候都不会相同。增加值也是如此,因为有时我们可以删除行并且 ID 的顺序不正确)
零建议:https://stackoverflow.com/a/29803290/13919003 但在他的回答中,他并不关心 int 或 float 是分类列,而 «passengerClass» 列就是这种情况。
【问题讨论】:
-
df.dtypes.isin(["object", "category"])? -
不是因为int64可以是分类数据(看passengerClass列
标签: python pandas numpy data-science