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