数据帧按值分组\u计数

2024-09-30 02:28:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过这段代码,它工作得很好,但是当我从

dx=dm.groupby(["RIAGENDR","RIDAGEYR"])["DMDMARTL"]

它告诉我错误,但为什么是什么原因?? 请帮帮我

    dm=ds[ds["RIAGENDR"]=="male"]
    dm.RIDAGEYR=pd.cut(dm.RIDAGEYR,[18,30,40,50,60,70,80,100])
    dx=dm.groupby(["RIAGENDR","RIDAGEYR"])["DMDMARTL"]
    dx=dx.value_counts()
    dx=dx.unstack()
    dx = dx.apply(lambda x: x/x.sum(), axis=0) 
    #dx=dx.to_string(float_format="%.3f")
    dx
    ```

Tags: 代码value错误ds原因dmmalepd
2条回答

您应该从groupby操作中删除[]括号

为了清楚起见,如果要按2个变量分组,则应使用以下代码,该代码使用了list个变量:

dx=dm.groupby(["RIAGENDR","RIDAGEYR"])["DMDMARTL"]

如果要按1个变量分组,则不应使用list个变量,而应使用单个变量:

dx=dm.groupby("RIAGENDR")["DMDMARTL"]

如果只有一个变量,则不应使用[]:

dx=dm.groupby(["RIAGENDR","RIDAGEYR"])["DMDMARTL"] 

或者一种方法是使用:

dx=dm.groupby(by=["RIAGENDR"])

您可以通过层次索引中的以下链接获得此信息:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html

相关问题 更多 >

    热门问题