考虑以下数据框:
df = {'Type': [A, A, A, A, B, B, B, B],
'population': [100,200,300,400,500,600,700,800],
'city_name': ['Chicago', 'Chicago', 'New York', 'New York', 'Chicago', 'New York', 'Chicago', 'New York']}
df = pd.DataFrame(df)
Type city_name population
A Chicago 100
A Chicago 200
A Chicago 300
A New York 400
B Chicago 500
B New York 600
B Chicago 700
B New York 800
我希望在df中添加两个新列 - PopStd&按类型和city_name分组的df上的PopC 。
PopC将计算为计数(人口)-1
PopStd将计算为population.std()/ sqrt(count(population))
最后,我只希望每个组都有一条记录。
现在,我已经能够通过以下方式获取列:
df['PopC'] = df.groupby(['Type', 'city_name'])['population'].transform(lambda_fn_for_popC)
以及获得PopStd的类似方法。
我只需要弄清楚如何为每个组获得一条记录。