Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧分组功能_Python_Pandas_Jupyter Notebook - Fatal编程技术网

Python 数据帧分组功能

Python 数据帧分组功能,python,pandas,jupyter-notebook,Python,Pandas,Jupyter Notebook,我刚接触熊猫,对群比有点困惑。如果我有一个数据帧,如: 然后:df.groupby(['A']).count()返回如下内容(不完全正确,但很接近): 我的问题是,当您按多个列分组时会发生什么?比如: df.groupby(['A','B','C']).count() 它是否重新组合A、B和C列,然后计算计数?count计算非空值的数量。在groupby上下文中,它统计每个组中非空值的数量。当您同时groupby多个列时,groupby会为每个唯一的组合创建一个组。所以df.groupby

我刚接触熊猫,对群比有点困惑。如果我有一个数据帧,如:

然后:
df.groupby(['A']).count()
返回如下内容(不完全正确,但很接近):

我的问题是,当您按多个列分组时会发生什么?比如:

df.groupby(['A','B','C']).count()

它是否重新组合A、B和C列,然后计算计数?

count
计算非空值的数量。在
groupby
上下文中,它统计每个组中非空值的数量。当您同时
groupby
多个列时,
groupby
会为每个唯一的组合创建一个组。所以
df.groupby(['A','B','C']).count()
['A','B','C']中每个唯一的值组合计算每列的非空值数。

考虑示例数据帧
df

df = pd.DataFrame(dict(
        A=list('xxxxxxxxyyyyyyyyzzzzzzzz'),
        B=list('111122221111222211112222'),
        C=list('abababababababababababab'),
        D=list(range(23)) + [np.nan]
    ))
然后

df.groupby(['A','B','C']).count()

       D
A B C   
x 1 a  2
    b  2
  2 a  2
    b  2
y 1 a  2
    b  2
  2 a  2
    b  2
z 1 a  2
    b  2
  2 a  2
    b  1