私は巨大なDataFrameを持っているので、列が順調ではなく、その名前も知りません。pandasを使用してdatetime型のすべての列を取得しますか?
datetime型のすべての列を見つけるにはどうすればよいですか?
オンラインのほとんどのソリューションでは、ポスターがカラムの名前を知っているので、私は少し問題があります。このような状況で私は何ができますか?
私は巨大なDataFrameを持っているので、列が順調ではなく、その名前も知りません。pandasを使用してdatetime型のすべての列を取得しますか?
datetime型のすべての列を見つけるにはどうすればよいですか?
オンラインのほとんどのソリューションでは、ポスターがカラムの名前を知っているので、私は少し問題があります。このような状況で私は何ができますか?
pandas.DataFrame.select_dtypes()
を使用し、datetime64タイプのみを含めることができます。
df.select_dtypes(include=['datetime64'])
デモ
>>> df
dts1 dts2 ints
0 2012-01-01 2004-01-01 0
1 2012-01-02 2004-01-02 1
2 2012-01-03 2004-01-03 2
.. ... ... ...
97 2012-04-07 2004-04-07 97
98 2012-04-08 2004-04-08 98
99 2012-04-09 2004-04-09 99
>>> df.select_dtypes(include=['datetime64'])
dts1 dts2
0 2012-01-01 2004-01-01
1 2012-01-02 2004-01-02
2 2012-01-03 2004-01-03
.. ... ...
97 2012-04-07 2004-04-07
98 2012-04-08 2004-04-08
99 2012-04-09 2004-04-09
パンダのデータフレームの各列がパンダシリーズであるので、単純に(典型的には、datetime64 [NS]列名のリストを反復処理と条件付き日時のseries.dtype
を確認):
for col in df.columns:
if df[col].dtype == 'datetime64[ns]':
print(col)
またはリストの理解として:
[col for col in df.columns if df[col].dtype == 'datetime64[ns]']
または直列フィルタとして:列は
df.dtypes[df.dtypes=='datetime64[ns]']
何_else_を持っていますか?他のタイプ? 'NaN'?いくつかのサンプルデータを追加できますか? – miradulo
私は100以上の列を持ち、いくつかの列はint型であり、いくつかはブール型であり、いくつかは英数字型です。 datetime列にNaNはありません。 (彼らのうちの2つしかない、私はちょうどそれらの誰かを取得したい)。 NaNがないと仮定しよう。私は10以上のデータセットのサンプルでは見つかりませんでした。 –