增量计数一列,另一列为基础

问题描述 投票:0回答:1

我有这个数据框,需要在我的距离列的基础上创建一个计数列。我按模型列将结果分组。我期望得到的是,每当距离为100时,下一个计数行上的增量就为1。例如,这是我到目前为止所获得的结果,但是增量还没有成功]

import pandas as pd
df = pd.DataFrame(
    [['A', '34', 3], ['A', '55', 5], ['A', '100', 7], ['A', '0', 1],
     ['B', '90', 3], ['B', '0', 1], ['B', '1', 3], ['B', '21', 1],
     ['C', '9', 7], ['C', '23', 4], ['C', '100', 1], ['C', '33', 6]],
    columns=['Model', 'Distance', 'v1'])
def callback(x):
    x['Count'] = range(1, x.shape[0] + 1)
    return x 
df = df.groupby(['Model']).apply(lambda row: callback(row) if row['Distance'] is not None else callback(row)+1)
print(df)

   Model Distance  v1  Count
0      A       34   3      1
1      A       55   5      2
2      A      100   7      3
3      A        0   1      4
4      B       90   3      1
5      B        0   1      2
6      B        1   3      3
7      B       21   1      4
8      C        9   7      1
9      C       23   4      2
10     C      100   1      3
11     C       33   6      4

我的预期结果是:

   Model Distance  v1  Count
0      A       34   3      1
1      A       55   5      2
2      A      100   7      3
3      A        0   1      5
4      B       90   3      1
5      B        0   1      2
6      B        1   3      3
7      B       21   1      4
8      C        9   7      1
9      C       23   4      2
10     C      100   1      3
11     C       33   6      5

[如果您注意到,我在第3行和第10行有100,然后我的下一个计数加+ 1。我将非常感谢您的帮助。我对使用pandas或numpy的任何解决方案都感到满意。

我有这个数据框,需要在我的距离列的基础上创建一个计数列。我按模型列将结果分组。我期望得到的是在下一个计数行上增加1 ...

python-3.x pandas numpy dataframe
1个回答
0
投票

该解决方案对您有用吗?

© www.soinside.com 2019 - 2024. All rights reserved.