我有这个数据框,需要在我的距离列的基础上创建一个计数列。我按模型列将结果分组。我期望得到的是,每当距离为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 ...
该解决方案对您有用吗?