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