是否有可能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']}
你可以使用groupby
和agg
:
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())