2017-05-05 3 views
0

私はデータフレームdfを持っており、そのデータフレームの列に現れている名前の総数を維持したいと考えています。データフレームを通じて実行中の合計を計算する

  1. ループと名前と現在のカウントを含む別の辞書を使用します。私はこれを行うために考え、2つの方法があります

    name running total 
        a   1 
        a   2 
        b   1 
        a   3 
        c   1 
        b   2 
    

    :私は、実行中の合計列を計算しようとしています。関連する名前の現在のカウントは、ループが実行されるたびに1ずつ増加し、その値が私のデータフレームにコピーされます。

  2. データフレーム内の各値のフィールドのカウントを変更します。 Excelで最初の値を修正するには式A $ 1:A1をドラッグダウンと組み合わせたcountifを使用しますが、2番目の値を相対値にすることで、行の変更を見ている範囲がわかります。

問題はどのように実装するのかわかりません。誰にどのようなアイデアがあり、それがどのように実装されているのでしょうか?

+1

パンダを使用している場合は['cumcount'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.cumcount.html)の機能を確認してください – bunji

答えて

1

@bunjiが正しいです。私はあなたがパンダを使用していると仮定しており、あなたのデータはdfというデータフレームにあると仮定しています。あなたのデータフレームに、実行中の合計を追加するには、あなたがこのような何か行うことができます:

df['running total'] = df.groupby(['name']).cumcount() + 1

+ 1は、あなたがそうなるだろう何であるあなたの最初の発生はなく、0、1を与えます。

+0

とても簡単!ありがとう – OllieP

関連する問題