如果我有一个包含以下列的数据框:
1. NAME object 2. On_Time object 3. On_Budget object 4. %actual_hr float64 5. Baseline Start Date datetime64[ns] 6. Forecast Start Date datetime64[ns]
我想说:对于这个数据框, 给我一个“对象”类型或“日期时间”类型的列的列表 ?
我有一个将数字(’float64’)转换为小数点后两位的函数,我想使用这个特定类型的数据帧列列表,并通过这个函数运行它以将它们全部转换为 2dp。
也许是这样的:
For c in col_list: if c.dtype = "Something" list[] List.append(c)?
如果你想要一个特定类型的列列表,你可以使用groupby:
groupby
>>> df = pd.DataFrame([[1, 2.3456, 'c', 'd', 78]], columns=list("ABCDE")) >>> df A B C D E 0 1 2.3456 c d 78 [1 rows x 5 columns] >>> df.dtypes A int64 B float64 C object D object E int64 dtype: object >>> g = df.columns.to_series().groupby(df.dtypes).groups >>> g {dtype('int64'): ['A', 'E'], dtype('float64'): ['B'], dtype('O'): ['C', 'D']} >>> {k.name: v for k, v in g.items()} {'object': ['C', 'D'], 'int64': ['A', 'E'], 'float64': ['B']}