我有一个巨大的DataFrame,其中的列不是有序的,也不知道它们的名字.
如何查找日期时间类型的所有列?
大多数在线解决方案,海报知道列的名称,所以我有点麻烦,因为我没有.在这种情况下我该怎么办?
mir*_*ulo 11
您可以使用pandas.DataFrame.select_dtypes(),仅包含datetime64类型.
df.select_dtypes(include=['datetime64'])
Run Code Online (Sandbox Code Playgroud)
演示
>>> 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
Run Code Online (Sandbox Code Playgroud)
由于 pandas DataFrame 的每一列都是 pandas Series,只需迭代列名称列表并有条件地检查series.dtype日期时间(通常为datetime64[ns]):
for col in df.columns:
if df[col].dtype == 'datetime64[ns]':
print(col)
Run Code Online (Sandbox Code Playgroud)
或者作为列表理解:
[col for col in df.columns if df[col].dtype == 'datetime64[ns]']
Run Code Online (Sandbox Code Playgroud)
或者作为串联过滤器:
df.dtypes[df.dtypes=='datetime64[ns]']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4461 次 |
| 最近记录: |