【发布时间】:2021-08-11 06:49:42
【问题描述】:
数据框 df 的外观如下所示。我想按位置分组,并使用我定义的函数计算每组级别的值。
data
ID Position Level Value
001 N L 15
001 N H 21
001 N L 17
001 S L 12
001 S H 20
001 S L 16
函数如下所示
def rule(df):
h_value = df.loc[df['level'] == 'H'], value]
l_value = df.loc[df['level'] == 'L'], value].mean()
df['dtm'] = h_value - l_value
return df
这是 groupby 代码。
new_df = df.groupby(['ID','Position']).apply(lambda x: rule(x))
但结果(new_df)显示
ID Position Level Value dtm expected result of dtm
001 N L 15 Nan 5
001 N H 21 5 5
001 N L 17 Nan 5
001 S L 12 Nan 6
001 S H 20 6 6
001 S L 16 Nan 6
如何在每组位置中使用相同的 dtm 值填充缺失值。谢谢
【问题讨论】:
标签: python-3.x pandas dataframe pandas-groupby