所有的列清单给定的数据类型

问题描述 投票:3回答:1

是否有可能GROUPBY数据类型的熊猫吗?对于如我需要的“对象”或“浮动”类型的所有列的列表。

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

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']}
python pandas
1个回答
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())
© www.soinside.com 2019 - 2024. All rights reserved.