Python 用groupby确定家庭规模
我有一个包含个人及其家庭ID的数据框架,我想创建一个包含家庭规模的变量 我正在使用Python 3.7。我尝试将groupby函数与size(我也尝试了count)函数结合使用。我的想法是,对于每个关于个人的观察,我想在数据框中计算具有相同家庭ID的观察数量,并将其存储在一个新变量中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
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的个体总数。我将在原始注释中添加一个示例