データフレームをループして、列に行を追加しますpandas python

ジェシカ

読み込んだデータセットがあります:

import pandas as pd
data = pd.read_excel('.../data.xlsx')

コンテンツは次のようになります。

Out[57]: 
        Block    Concentration          Name      value
          1            100           GlcNAc2      321
          1            100           GlcNAc2      139
          1            100           GlcNAc2      202
          1            33            GlcNAc2      86
          1            33            GlcNAc2      194
          1            33            GlcNAc2      452
          1            100            BCC         345
          1            100            BCC         6
          1            100            BCC         34
          1            33             BCC         11
          1            33             BCC         53
          1            33             BCC         87
          1            0       Print buffer       127
          1            0       Print buffer       55
          1            0       Print buffer       67


 ...     ...            ...               ...        ...               ...

         24             0       Print buffer      -9968
         24             0       Print buffer      -4526
         24             0       Print buffer      14246
  1. ブロックと名前ごとに、3つの「0」濃度を追加し、そのブロックからの3つの「印刷バッファー」値をそれらの3つの新しい「0」濃度に追加します。

        Out[57]: 
        Block    Concentration          Name      value
          1            0             GlcNAc2       127
          1            0             GlcNAc2       55
          1            0             GlcNAc2       67
          1            100           GlcNAc2      321
          1            100           GlcNAc2      139
          1            100           GlcNAc2      202
          1            33            GlcNAc2      86
          1            33            GlcNAc2      194
          1            33            GlcNAc2      452
          1            0              BCC         127
          1            0              BCC         55
          1            0              BCC         67
          1            100            BCC         345
          1            100            BCC         6
          1            100            BCC         34
          1            33             BCC         11
          1            33             BCC         53
          1            33             BCC         87
          1            0       Print buffer       127
          1            0       Print buffer       55
          1            0       Print buffer       67
    

    ... ... ... .........。

         24             0       Print buffer      -9968
         24             0       Print buffer      -4526
         24             0       Print buffer      14246
    
  2. 3 'プリントバッファ'の平均を計算し、同じブロックのすべての値でそれを減算します。

    必要な出力:

       Out[57]: 
        Block    Concentration          Name      value         newvalue
          1            0             GlcNAc2      127            127-mean(127+55+67)
          1            0             GlcNAc2      55             55 -mean(127+55+67)
          1            0             GlcNAc2      67             67-mean(127+55+67)
          1            100           GlcNAc2      321            321-mean(127+55+67)
          1            100           GlcNAc2      139             139-mean(127+55+67)
          1            100           GlcNAc2      202            ....
          1            33            GlcNAc2      86
          1            33            GlcNAc2      194
          1            33            GlcNAc2      452
          1            0             BCC          127
          1            0             BCC          55
          1            0             BCC          67
          1            100           BCC          345
          1            100           BCC          6
          1            100           BCC          34
          1            33            BCC          11
          1            33            BCC          53
          1            33            BCC          87
          1            0        Print buffer      127
          1            0        Print buffer      55
          1            0        Print buffer      67
    
    ...     ...            ...               ...        ...               ...
    
         24             0       Print buffer      -9968
         24             0       Print buffer      -4526
         24             0       Print buffer      14246
    

    擬似コード:

    for each block
       for each Name
        add concentration '0' three times
        append the three values of 'print buffer' to the three '0' concentrations 
        newvalue = value - average(three print buffer) 
    
完璧

groupby適用関数をデータセットに使用すること検討してください最初の関数は、を使用して「Print Buffer」の値のみを平均し、他の値mean()はブロックゼロのままにします。そして、2番目の関数はを最大化しmeanvalueます。最後に、単純にnewvalue算術差分として作成します

def add_mean_value(mgrp): 
    mgrp['meanvalue'] = mgrp[mgrp['Name'] == 'Print buffer']['value'].mean()    
    return mgrp
data = data.groupby(['Block', 'Concentration', 'Name']).apply(add_mean_value)    

def max_sum_value(mgrp):    
    mgrp['meanvalue'] = mgrp['meanvalue'].max()    
    return mgrp
data = data.groupby(['Block']).apply(max_sum_value)

data['newvalue'] = data['value'] - data['meanvalue']
print(data)

出力

    Block  Concentration          Name  value  meanvalue  newvalue
0       1            100       GlcNAc2    321         83       238
1       1            100       GlcNAc2    139         83        56
2       1            100       GlcNAc2    202         83       119
3       1             33       GlcNAc2     86         83         3
4       1             33       GlcNAc2    194         83       111
5       1             33       GlcNAc2    452         83       369
6       1            100           BCC    345         83       262
7       1            100           BCC      6         83       -77
8       1            100           BCC     34         83       -49
9       1             33           BCC     11         83       -72
10      1             33           BCC     53         83       -30
11      1             33           BCC     87         83         4
12      1              0  Print buffer    127         83        44
13      1              0  Print buffer     55         83       -28
14      1              0  Print buffer     67         83       -16

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python Pandas-特定の行に列を追加し、あるデータフレームから別のデータフレームに特定の行を追加します

分類Dev

Pandasデータフレームをループしてリストにデータを入力します(Python)

分類Dev

pandas データフレームに Python 曲線を当てはめ、新しい列に coef を追加します

分類Dev

elseifロジックを使用してPandasデータフレームに条件列を追加します-Python

分類Dev

Python:ループを使用して既存のデータフレームに行を追加する

分類Dev

データフレーム列pythonをループします

分類Dev

計算列を追加してから、新しいデータだけをPandasデータフレームに繰り返し追加します(python 3.7.1)

分類Dev

Pythonは、別の列の条件に基づいてデータフレームに行を追加します

分類Dev

Python Pandasデータフレームは、IDが他のデータフレームに存在する場合、新しい列に「1」を追加します

分類Dev

Python:データフレームはインデックスルールに列を追加します

分類Dev

Pythonパンダ:データフレームをループしながら行に情報を追加する

分類Dev

Pythonデータフレームに空の行を追加します

分類Dev

Pythonの適用関数を使用して列をデータフレームに追加しますか?

分類Dev

python:Pandas-不足している日付をデータフレームに追加します

分類Dev

Python Pandas: 文字列、数値、および NaN 値を持つ 3 つのデータフレームを、共通の列を使用して新しいデータフレームにグループ化します

分類Dev

Python pandasデータフレームは、前の行の値に要素を追加し、新しい列を作成します

分類Dev

Pythonでデータフレームに配列を追加します。

分類Dev

Python:データフレームの2列を一緒に追加します

分類Dev

Python Pandasを使用して、データフレームから行ごとに既存の値を確認します

分類Dev

Pythonデータフレームを使用して、条件を満たす各行に条件を満たす行のカウントの列を追加します

分類Dev

Python:1つのデータフレームから値を取得し、別のデータフレームに追加します(行と列の条件)

分類Dev

pandasデータフレームの複数の列でグループ化を実行し、PythonでfbProphetを使用して将来の値を予測する方法は?

分類Dev

Pythonのループを使用してデータフレームに新しい列を作成する方法

分類Dev

データフレーム、Pythonのループの空の列に値を追加する正しい方法

分類Dev

Python Pandas:groupby / transform操作内のデータフレームにまったく新しい列を追加する方法

分類Dev

Python:Pandasでは、条件に基づいてデータフレーム内の複数の列からデータを抽出し、列で一致するさまざまなデータフレームに追加します

分類Dev

Pythonのデータフレームの行の最後に特定の列値を追加します

分類Dev

Python / Pandas:別のデータフレームに基づいてデータフレームの行と列をフィルタリングして整理します

分類Dev

Python Pandas:1つの列に沿って2つのデータフレームを比較し、別のデータフレームの両方のデータフレームの行のコンテンツを返します

Related 関連記事

  1. 1

    Python Pandas-特定の行に列を追加し、あるデータフレームから別のデータフレームに特定の行を追加します

  2. 2

    Pandasデータフレームをループしてリストにデータを入力します(Python)

  3. 3

    pandas データフレームに Python 曲線を当てはめ、新しい列に coef を追加します

  4. 4

    elseifロジックを使用してPandasデータフレームに条件列を追加します-Python

  5. 5

    Python:ループを使用して既存のデータフレームに行を追加する

  6. 6

    データフレーム列pythonをループします

  7. 7

    計算列を追加してから、新しいデータだけをPandasデータフレームに繰り返し追加します(python 3.7.1)

  8. 8

    Pythonは、別の列の条件に基づいてデータフレームに行を追加します

  9. 9

    Python Pandasデータフレームは、IDが他のデータフレームに存在する場合、新しい列に「1」を追加します

  10. 10

    Python:データフレームはインデックスルールに列を追加します

  11. 11

    Pythonパンダ:データフレームをループしながら行に情報を追加する

  12. 12

    Pythonデータフレームに空の行を追加します

  13. 13

    Pythonの適用関数を使用して列をデータフレームに追加しますか?

  14. 14

    python:Pandas-不足している日付をデータフレームに追加します

  15. 15

    Python Pandas: 文字列、数値、および NaN 値を持つ 3 つのデータフレームを、共通の列を使用して新しいデータフレームにグループ化します

  16. 16

    Python pandasデータフレームは、前の行の値に要素を追加し、新しい列を作成します

  17. 17

    Pythonでデータフレームに配列を追加します。

  18. 18

    Python:データフレームの2列を一緒に追加します

  19. 19

    Python Pandasを使用して、データフレームから行ごとに既存の値を確認します

  20. 20

    Pythonデータフレームを使用して、条件を満たす各行に条件を満たす行のカウントの列を追加します

  21. 21

    Python:1つのデータフレームから値を取得し、別のデータフレームに追加します(行と列の条件)

  22. 22

    pandasデータフレームの複数の列でグループ化を実行し、PythonでfbProphetを使用して将来の値を予測する方法は?

  23. 23

    Pythonのループを使用してデータフレームに新しい列を作成する方法

  24. 24

    データフレーム、Pythonのループの空の列に値を追加する正しい方法

  25. 25

    Python Pandas:groupby / transform操作内のデータフレームにまったく新しい列を追加する方法

  26. 26

    Python:Pandasでは、条件に基づいてデータフレーム内の複数の列からデータを抽出し、列で一致するさまざまなデータフレームに追加します

  27. 27

    Pythonのデータフレームの行の最後に特定の列値を追加します

  28. 28

    Python / Pandas:別のデータフレームに基づいてデータフレームの行と列をフィルタリングして整理します

  29. 29

    Python Pandas:1つの列に沿って2つのデータフレームを比較し、別のデータフレームの両方のデータフレームの行のコンテンツを返します

ホットタグ

アーカイブ