检测特定熊猫列类型的Python方法

问题描述 投票:2回答:2

基于dtype选择列的最Python方式是什么? (只需要列,而不需要像select_dtypes一样的整个df。假设我们正在寻找datetime列,当前我们正在使用:

date_cols = [col for col in df.columns if "datetime" in str(df[col].dtype]

另一个选择是

date_cols = [col for col in df.columns if isinstance(df[col].dtype, pd.core.dtypes.dtypes.XXXX)]

但找不到dtype('<M8[ns]')的正确dtype。np.datetime64也未检测到它。

pandas
2个回答
0
投票

我愿意:

from pandas.api.types import is_datetime64_dtype

ts = df.dtypes.apply(is_datetime64_dtype)
ts[ts].index

0
投票

使用pandas.api.types.is_datetime64_dtype,有关所有可能功能的列表,请检查pandas.api.types.is_datetime64_dtype

general_utility_functions

更简单的是general_utility_functions,带有列:

rng = pd.date_range('2017-04-03', periods=10)
df = pd.DataFrame({'Date': rng, 'a': range(10)})  
print (df)

date_cols = [col for col in df.columns if pd.api.types.is_datetime64_dtype(df[col])]
print (date_cols)
['Date']

或:

DataFrame.select_dtypes
© www.soinside.com 2019 - 2024. All rights reserved.