gpt4 book ai didi

python pandas dataframe 聚合行

转载 作者:行者123 更新时间:2023-12-02 18:08:36 25 4
gpt4 key购买 nike

我有一个像这样的数据框。

   id   K  V
0 1 k1 3
1 1 k2 4
2 1 k2 5
3 1 k1 5
4 2 k1 2
5 2 k1 3
6 2 k2 3

我还有一组条件,例如 k1 > 1 和 k2 < 4。

我想处理条件并创建一个新的数据框,每个 id 包含 1 行,每个条件包含 1 列。

   id  k1_condition  k2_condition
0 1 True False
1 2 True True

最佳答案

尝试以下操作

# function to be applied to the column 'V 'each (id, ki) group
def conditions(g):
cond_dict = {
'k1': lambda k1: k1 > 1,
'k2': lambda k2: k2 < 4
}
_ , k = g.name # g.name = group key = (id, ki)
return cond_dict[k](g).all()

out = (
df.groupby(['id', 'K'])['V']
.apply(conditions)
.unstack('K') # turn k1 and k2 into columns
.add_suffix('_cond') # add suffix to column names: ki --> ki_cond
.rename_axis(columns=None) # remove the column axis label (K)
.reset_index() # make id a column, not the index
)

输出:

>>> out

id k1_cond k2_cond
0 1 True False
1 2 True True

如果K列包含除k1k2之外的其他值,您可以轻松地向cond_dict添加更多条件>.

关于python pandas dataframe 聚合行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72840187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com