Python 用groupby确定家庭规模

Python 用groupby确定家庭规模,python,pandas-groupby,counting,Python,Pandas Groupby,Counting,我有一个包含个人及其家庭ID的数据框架,我想创建一个包含家庭规模的变量 我正在使用Python 3.7。我尝试将groupby函数与size(我也尝试了count)函数结合使用。我的想法是,对于每个关于个人的观察,我想在数据框中计算具有相同家庭ID的观察数量,并将其存储在一个新变量中 For example: individual hh_id hh_size 1 1 2 2 1 2 3

我有一个包含个人及其家庭ID的数据框架,我想创建一个包含家庭规模的变量

我正在使用Python 3.7。我尝试将groupby函数与size(我也尝试了count)函数结合使用。我的想法是,对于每个关于个人的观察,我想在数据框中计算具有相同家庭ID的观察数量,并将其存储在一个新变量中

For example: 

 individual    hh_id  hh_size
  1             1      2
  2             1      2
  3             2      1
  4             3      1  


Thanks, 
Julien
假设每个观察都有一个家庭ID(hh_ID),我想将家庭大小存储在hh_size变量中

我尝试了以下方法:

df['hh\u size']=df.groupby('hh\u id')。size

我希望hh_大小变量包含每次观察的家庭大小。然而,我得到一个只有nan的专栏

当我单独使用
df.groupby('hh_id').size
时,我得到了预期的结果,但无法将其存储在hh_size变量中

For example: 

 individual    hh_id  hh_size
  1             1      2
  2             1      2
  3             2      1
  4             3      1  


Thanks, 
Julien

如果我理解,您必须将其转换为新的
数据帧
-
。转换为_frame(name='hh_size')
-并且您可能必须重置索引

import pandas as pd

df = pd.DataFrame({
    'individual': [1,1,2,2,3,4],
    'hh_id':      [1,1,1,1,2,3],
})

sizes = df.groupby(['individual', 'hh_id']).size()

new_df = sizes.to_frame(name='hh_size').reset_index()

print(new_df)
结果:

   individual  hh_id  hh_size
0           1      1        2
1           2      1        2
2           3      2        1
3           4      3        1

你能展示一些代码吗?你们的问题不清楚。我确实展示了一些代码,但我很乐意澄清。我有一个关于个人观察的数据框架。每个人都有一个家庭id(hh_id)。我想创建一个新变量,hh_size,用于计算每个观察值,即具有相同hh_id的个体总数。我将在原始注释中添加一个示例