首页 > 解决方案 > 如何检查 Pandas DataFrame 中的列值类型

问题描述

我可以使用 pandas DataFrame 来检查列df.dtypes类型df。但是,我的问题有点不同。我有以下数据框:

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回报object。_

我需要创建一个新列is_timestamp来检查col2值是否是熊猫时间戳。为了测试,我尝试了以下代码:

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

标签: pythonpandas

解决方案


尝试:

df_viz['col3']=(df_viz.col2.transform(lambda x:
  np.where(x==pd._libs.tslibs.timestamps.Timestamp,'Yes','No')))

推荐阅读