给定数据类型的所有列的列表

时间:2019-02-03 04:40:32

标签: python pandas

是否可以对熊猫中的数据类型进行分组? 例如我需要“对象”或“浮动”类型的所有列的列表。

此代码将完全返回我所需要的。我正在寻找一种更好的方法来实现这一目标(如果可能)。

from collections import defaultdict
food_count = defaultdict(list)

for i, v in dict(df.dtypes).items():
    food_count[v].append(i)

dict(food_count)

{dtype('<M8[ns]'): ['agency_spot_time'],
 dtype('int64'): ['cost', 'spot_id', 'Event'],
 dtype('O'): ['channel'],
 dtype('float64'): ['viziters']}

1 个答案:

答案 0 :(得分:2)

您可以使用groupbyagg

food_count = (lambda s: (
     pd.Series(s.index, s).groupby(level=0).agg(list).to_dict()))(df.dtypes)

对此更具可读性的版本是:

s = df.dtypes
food_count = pd.Series(s.index, s).groupby(level=0).agg(list).to_dict())