是否可以对熊猫中的数据类型进行分组? 例如我需要“对象”或“浮动”类型的所有列的列表。
此代码将完全返回我所需要的。我正在寻找一种更好的方法来实现这一目标(如果可能)。
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']}
答案 0 :(得分:2)
您可以使用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())