【发布时间】:2021-07-14 14:45:06
【问题描述】:
我有一个如下所示的数据框:
ID OLD QTD
1 15295 7 1
2 15295 7 1
3 15295 7 1
4 15801 5 1
5 23369 7 1
6 23369 7 1
7 23369 7 1
8 23369 7 1
9 38004 6 1
10 38004 6 1
11 38004 6 1
我正在对数据框进行操作,在此之前:
df.groupby('ID').apply(lambda x: x['QTD'].sum()/5)
它正在返回这个:
ID
15295 0.429
15801 0.200
23369 0.571
38004 0.500
但后来我注意到我必须更改为:
df.groupby('ID').apply(lambda x: x['QTD'].sum()/x['OLD'])
现在它返回这个:
ID
15295 0 0.429
1 0.429
2 0.429
15801 3 0.200
23369 4 0.571
5 0.571
6 0.571
7 0.571
38004 8 0.500
9 0.500
10 0.500
OLD 是一系列整数值。我不得不更改,因为它们从 ID 到 ID 不同,而不是在它是一个固定整数 (5) 之前。
如何让第二个操作像以前一样只检索 ID 和浮点值?每个 ID 一行简单吗?
我不确定为什么会发生这种情况,但我不希望一个 ID 有多行,我希望一个 ID 有一行,而这些行中的最后一个值。像这样:
ID
15295 0.429
15801 0.200
23369 0.571
38004 0.500
帮助非常感谢!
【问题讨论】:
-
你能添加一些输入样本 dtaa 和预期输出吗?
-
嗨!我只是包含了更多信息。希望现在好多了。
-
超级棒,好多了。仅缺少相关数据的预期输出。
-
我刚刚把它包括在内。我想要与以前几乎相同的输出,但具有新的条件。
-
那么在预期输出中,
0.600的15295计数如何?
标签: python pandas numpy math jupyter-notebook