嗨,我正在做一个作业,在执行Dataframe融化操作,然后进行分组和计数之后,当我进行后续操作时,我发现了一些有趣的事情:
melted_df = df.melt(id_vars= 'cardio',value_vars=['cholesterol' ,'gluc' , 'smoke' , 'alco' , 'active' , 'overweight'])
melted_df = pd.DataFrame(melted_df.groupby(['cardio' , 'variable' , 'value'])['value'].count())
完成此操作后,列分为两个级别,如下所示:
我只能重命名第一级名称,而不能重命名较低级的名称。
有人可以解释为什么有两个级别吗?
您需要设置as_index
参数。
pd.DataFrame(melted_df.groupby(['cardio' , 'variable' , 'value'], as_index=False)['value'].count())
发生问题是因为您将现有数据框作为数据放入新数据框:
您不这样做是有原因的吗?
melted_df = melted_df.groupby(['cardio' , 'variable' , 'value'], as_index=False)['value'].count()
根据您评论中的要求:
import pandas as pd
df = pd.read_csv(r"D:\test\medical_examination.csv")
df = df.melt(id_vars=['id', 'cardio'], value_vars=['cholesterol', 'gluc', 'smoke', 'alco', 'active'])
df = df.groupby(['cardio', 'variable', 'value'])['value'].agg(total=sum).reset_index()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句