我可以使用 df.dtypes 检查列类型,其中 df 是 pandas DataFrame。但是,我的问题有点不同。我有以下数据框:
col1 col2
0 <class 'pandas._libs.tslibs.timestamps.Timestamp'>
1 <class 'pandas._libs.tslibs.timestamps.Timestamp'>
2 <class 'float'>
3 NaN
4 <class 'pandas._libs.tslibs.timestamps.Timestamp'>
df["col2"].dtypes
返回对象
。
我需要创建一个新列is_timestamp
来检查col2
值是否是pandas时间戳。为了进行测试,我尝试了以下代码:
isinstance(df_viz["col2"][0], pd._libs.tslibs.timestamps.Timestamp)
但它返回False
。
预期输出:
col1 col2 col3
0 <class 'pandas._libs.tslibs.timestamps.Timestamp'> Yes
1 <class 'pandas._libs.tslibs.timestamps.Timestamp'> Yes
2 <class 'float'> No
3 NaN No
4 <class 'pandas._libs.tslibs.timestamps.Timestamp'> Yes
最佳答案
尝试:
df_viz['col3']=(df_viz.col2.transform(lambda x:
np.where(x==pd._libs.tslibs.timestamps.Timestamp,'Yes','No')))
关于python - 如何检查 pandas DataFrame 中的列值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55493237/