あなただけのこれを達成するためにselect_dtypes
を使用することができます。
In [104]:
df = pd.DataFrame({'int':np.arange(5), 'flt':np.random.randn(5), 'str':list('abcde'), 'dt':pd.date_range(dt.datetime.now(), periods=5)})
df
Out[104]:
dt flt int str
0 2017-01-18 16:50:13.678037 -0.319022 0 a
1 2017-01-19 16:50:13.678037 0.400441 1 b
2 2017-01-20 16:50:13.678037 0.114614 2 c
3 2017-01-21 16:50:13.678037 1.594350 3 d
4 2017-01-22 16:50:13.678037 -0.962520 4 e
In [106]:
df.select_dtypes([np.datetime64])
Out[106]:
dt
0 2017-01-18 16:50:13.678037
1 2017-01-19 16:50:13.678037
2 2017-01-20 16:50:13.678037
3 2017-01-21 16:50:13.678037
4 2017-01-22 16:50:13.678037
その後のことができます。これらの列だけにmin,max
を入力してください:
In [108]:
for col in df.select_dtypes([np.datetime64]):
print('column: ', col)
print('max: ',df[col].max())
print('min: ',df[col].min())
column: dt
max: 2017-01-22 16:50:13.678037
min: 2017-01-18 16:50:13.678037
あなたの試みが失敗した理由を答えるために、あなたは文字列でnp.dtype
オブジェクトを比較している、あなたはnp.dtype.name
と比較したい:
In [125]:
for col in df:
if df[col].dtype.name == 'datetime64[ns]':
print('col', col)
print('max', df[col].max())
print('min', df[col].min())
col dt
max 2017-01-22 16:50:13.678037
min 2017-01-18 16:50:13.678037
私は何をしたいの推測を取ることができますが、それは私たちを見るのがベストです例。 – piRSquared
'if data [col] .dtype.name == 'datetime64 [ns]':' 'dtype'は' np.dtype'オブジェクトです – EdChum