1

次のことを実行できる GroupBy 句 (PANDAS DATAFRAME 内) を見つけようとしています。

  1. インプレース変換。
  2. すべてのお金を追加
  3. 可能であれば、列「A」と「Money」を持つ元のデータフレームを取得し、「A」をインデックスとして、「Money」を列としてではありません。

入力は以下のようなものです。

dataframe = pandas.DataFrame({'A':[11,11,22,22],
                              'Cust':['C','D','C','C'],
                              'Money':np.arange(10,30,5)})

ここで、顧客の種類に基づいて Money 列を追加/削除したいと考えました。その「C」が減算され、「D」が加算され、列「A」にロールされる場合と同様です。したがって、この例では、

A の場合は「11」のようにお金は「5」 B の場合は「22」のようにお金は「-45」

4

1 に答える 1

2

あなたの例から始めて

In [16]: df
Out[16]: 
    A Cust  Money
0  11    C     10
1  11    D     15
2  22    C     20
3  22    C     25
  1. あなたが説明したように、Cust が C か D かに基づいて Money の符号を設定します。

    In [17]: df['Money'][df['Cust'] == 'C'] *= -1
    
  2. 列「A」でグループ化された金額を合計します。

    In [18]: df.groupby('A').sum()
    Out[18]: 
        Money
    A        
    11      5
    22    -45
    
  3. もう一度実行In [17]して、元の DataFrame をそのまま復元します。

于 2013-05-22T15:09:09.987 に答える