1
我有一个熊猫数据帧,看起来像这样:添加列具有计数
d = {'device' : ['D1', 'D1', 'D1', 'D1', 'D1', 'D2', 'D2', 'D2', 'D2', 'D2',],
'interval' : ['Day 1', 'Day 1', 'Day 1', 'Day 2', 'Day 2', 'Day 2', 'Day 3', 'Day 3', 'Day 3', 'Day 3'],
'data' : np.random.rand(10) }
df = pd.DataFrame(d)
df.set_index(['device','interval'], inplace=True)
print(df)
data
device interval
D1 Day 1 0.087297
Day 1 0.849820
Day 1 0.577146
Day 2 0.027389
Day 2 0.469095
D2 Day 2 0.685370
Day 3 0.988979
Day 3 0.092372
Day 3 0.578315
Day 3 0.052130
我想补充一点,每个计算设备inverval出现的次数列。例如,我希望结果看起来像这样。
data count
device interval
D1 Day 1 0.087297 1
Day 1 0.849820 2
Day 1 0.577146 3
Day 2 0.027389 1
Day 2 0.469095 2
D2 Day 2 0.685370 1
Day 3 0.988979 1
Day 3 0.092372 2
Day 3 0.578315 3
Day 3 0.052130 4
这完全适用的例子。在我的真实数据集中,我有更多的列,所以我得到'ValueError:错误的项目数量通过20,放置意味着1'任何提示? – agf1997
您可能需要访问您的案例中的特定列,请尝试'df ['count'] = df.groupby(level = [0,1])['data']。transform(lambda x:x.rank(method ='密集',升序=假))' – EdChum
奇妙地工作。只需要注意'数据'栏中没有重复的数据。 – agf1997