我最近遇到了使用pandas数据帧的一致性问题。 假设我有一个包含不同列类型的数据框:
df = pd.DataFrame({"col1": [1,2,3], "col2": ["a", "b", "c"]})
我想通过应用函数来检查列类型:
coltype = lambda col: col.dtype
df.apply(coltype, axis=0)
令人惊讶地输出:
col1 object
col2 object
dtype: object
然而,当我单独检查一列时,我得到:
coltype(df["col1"])
dtype('int64')
coltype(df["col2"])
dtype('O')
我在这里做错了什么或者它是一个错误? 谢谢你的帮助
答案 0 :(得分:0)
我认为您需要apply
中的参数reduce=False
:
print (df.apply(lambda col: col.dtype, reduce=False))
col1 int64
col2 object
dtype: object
print (df.dtypes)
col1 int64
col2 object
dtype: object