簡體   English   中英

計算每個值的出現次數,並對熊貓中的另一列求和

[英]Compute number of occurance of each value and Sum another column in Pandas

我有一個熊貓數據框,其中有一些列。 我感興趣的專欄是這樣的,

df['col'] = ['A', 'A', 'B', 'C', 'B', 'A']

我想再說一列col_count ,以便它顯示從該索引到該列結尾的col計數值。

列中的第A應該具有值3,因為該索引中的列中出現了3個A 第二個A將具有值2 ,依此類推。

最后,我想得到以下結果,

    col     col_count
0   A   3
1   A   2
2   B   2
3   C   1
4   B   1
5   A   1

如何在熊貓中有效地做到這一點? 我能夠通過遍歷數據框並為切片的數據框對該值進行唯一計數來做到這一點。

有沒有一種有效的方法可以做到這一點? 沒有循環的東西比較可取。

問題的另一部分是,我還有col這樣的另一列,

df['X'] = [10, 40, 10, 50, 30, 20]

我想用對列col進行計數的相同方式來總結此列。

例如,在索引0處,我將得到10 + 40 + 20。 在索引1,總和為40 +20。簡而言之,我想對另一列求和而不是計數。

結果將是這樣,

    col     col_count   X   X_sum
0   A   3   10  70
1   A   2   40  60
2   B   2   10  40
3   C   1   50  50
4   B   1   30  30
5   A   1   20  20

使用pandas.Series.groupbycumcount cumsum

g = df[::-1].groupby('col')
df['col_count'] = g.cumcount().add(1)
df['X_sum'] = g['X'].cumsum()
print(df)

輸出:

  col   X  col_count  X_sum
0   A  10          3     70
1   A  40          2     60
2   B  10          2     40
3   C  50          1     50
4   B  30          1     30
5   A  20          1     20

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM