基于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
也未检测到它。
我愿意:
from pandas.api.types import is_datetime64_dtype
ts = df.dtypes.apply(is_datetime64_dtype)
ts[ts].index
使用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