数値のある列のパンダデータフレームに行ごとに関数を適用します

pdubois

次のデータフレームがあります。

import pandas as pd
df = pd.DataFrame({'AAA' : ['w','x','y','z'], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})

これは次のようになります:

In [32]: df
Out[32]:
  AAA  BBB  CCC
0   w   10  100
1   x   20   50
2   y   30  -30
3   z   40  -50

私がやりたいのは、数値以外の値(この場合AAAを除くすべての列のすべての行で関数演算を実行することです実際の場合、非数値の場合は常に最初の列にあり、残り(2列より大きくなる可能性があります)は常に数値です。

最終的に必要な出力は次のとおりです。

  AAA  BBB  CCC  Score
0   w   10  100  110
1   x   20   50   70
2   y   30  -30    0
3   z   40  -50  -10

私はこれを試しましたが失敗しました:

import numpy as np
df["Score"] = df.apply(np.sum, axis=1)

それを行う正しい方法は何ですか?

Update2:

これはを与えるコードですSettingWithCopyWarningテストのためにipythonを新たに起動してください。

import pandas as pd
import numpy as np 
def cvscore(fclist):
    sd = np.std(fclist)
    mean = np.mean(fclist)
    cv = sd/mean
    return cv

def calc_cvscore_on_df(df):
    df["CV"] = df.iloc[:,1:].apply(cvscore, axis=1)
    return df

df3 = pd.DataFrame(np.random.randn(1000, 3), columns=['a', 'b', 'c'])
calc_cvscore_on_df(df3[["a","b"]])
忘れてください

最初の列以外のすべてを選択するには、次を使用できますdf.iloc[:, 1:]

In [371]: df['Score'] = df.iloc[:, 1:].sum(axis=1)

In [372]: df
Out[372]: 
  AAA  BBB  CCC  Score
0   w   10  100    110
1   x   20   50     70
2   y   30  -30      0
3   z   40  -50    -10

func各行に任意の関数、を適用するには、次のようにします

df.iloc[:, 1:].apply(func, axis=1)

例えば、

import numpy as np
import pandas as pd

def cvscore(fclist):
    sd = np.std(fclist)
    mean = np.mean(fclist)
    cv = sd/mean
    return cv

df = pd.DataFrame({'AAA' : ['w','x','y','z'], 'BBB' : [10,20,30,40],
                   'CCC' : [100,50,-30,-50]})

df['Score'] = df.iloc[:, 1:].apply(cvscore, axis=1)
print(df)

収量

  AAA  BBB  CCC     Score
0   w   10  100  1.211386
1   x   20   50  0.868377
2   y   30  -30       NaN
3   z   40  -50 -5.809058

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

インデックスと列の値を入力として、パンダのデータフレームに要素ごとの関数を適用します

分類Dev

列の数に関係なく、データフレームに行ごとに関数を適用します

分類Dev

パンダのデータフレーム列に関数を適用する

分類Dev

文字列として宣言された関数をパンダのデータフレームに適用する

分類Dev

パンダのデータフレーム列のすべての行に関数を適用する

分類Dev

パンダは複数の列のデータフレームに関数を適用します

分類Dev

列を参照しながらパンダデータフレームに関数を行ごとに適用します

分類Dev

パンダは、パンダデータフレームの行に複数の値を返す関数を適用します

分類Dev

パンダのデータフレームのすべての列に関数を適用します

分類Dev

パンダデータフレームのすべての行に関数を適用します

分類Dev

パンダデータフレームの選択した行と列にのみ関数を適用するにはどうすればよいですか?

分類Dev

質問の行と上の行を見るパンダデータフレームに適用する関数を記述します

分類Dev

パンダデータフレームの単一列に関数を適用します

分類Dev

パンダデータフレームの列に関数を適用します

分類Dev

パンダのデータフレームは列全体に関数を適用します

分類Dev

パンダのデータフレームの特定の行にラムダ関数を適用して新しい列を作成する方法

分類Dev

パンダのデータフレームに関数を適用する

分類Dev

列ごとに2つのデータフレームに複数の関数を適用する

分類Dev

データが欠落しているデータフレームの行に適用を使用し、行ごとに関数を変更します-r

分類Dev

パンダデータフレームの他のすべての列に関数を適用する

分類Dev

パンダ:列タイプを認識する関数をデータフレームのすべての列に適用します

分類Dev

2つの引数を取るパンダデータフレームの列に関数を適用します

分類Dev

パンダ-異なる列からのいくつかの引数を持つデータフレームに関数を適用します

分類Dev

データフレーム列パンダに関数を適用する

分類Dev

パンダ、データフレームの行エントリである引数を適用します

分類Dev

パンダのデータフレームに数値の上限/しきい値を適用する

分類Dev

日付にループし、パンダのデータフレームに関数を適用する

分類Dev

Pythonデータフレームは、列ごとにグループごとに関数を適用します

分類Dev

列ごとにPandasデータフレームに関数を適用する

Related 関連記事

  1. 1

    インデックスと列の値を入力として、パンダのデータフレームに要素ごとの関数を適用します

  2. 2

    列の数に関係なく、データフレームに行ごとに関数を適用します

  3. 3

    パンダのデータフレーム列に関数を適用する

  4. 4

    文字列として宣言された関数をパンダのデータフレームに適用する

  5. 5

    パンダのデータフレーム列のすべての行に関数を適用する

  6. 6

    パンダは複数の列のデータフレームに関数を適用します

  7. 7

    列を参照しながらパンダデータフレームに関数を行ごとに適用します

  8. 8

    パンダは、パンダデータフレームの行に複数の値を返す関数を適用します

  9. 9

    パンダのデータフレームのすべての列に関数を適用します

  10. 10

    パンダデータフレームのすべての行に関数を適用します

  11. 11

    パンダデータフレームの選択した行と列にのみ関数を適用するにはどうすればよいですか?

  12. 12

    質問の行と上の行を見るパンダデータフレームに適用する関数を記述します

  13. 13

    パンダデータフレームの単一列に関数を適用します

  14. 14

    パンダデータフレームの列に関数を適用します

  15. 15

    パンダのデータフレームは列全体に関数を適用します

  16. 16

    パンダのデータフレームの特定の行にラムダ関数を適用して新しい列を作成する方法

  17. 17

    パンダのデータフレームに関数を適用する

  18. 18

    列ごとに2つのデータフレームに複数の関数を適用する

  19. 19

    データが欠落しているデータフレームの行に適用を使用し、行ごとに関数を変更します-r

  20. 20

    パンダデータフレームの他のすべての列に関数を適用する

  21. 21

    パンダ:列タイプを認識する関数をデータフレームのすべての列に適用します

  22. 22

    2つの引数を取るパンダデータフレームの列に関数を適用します

  23. 23

    パンダ-異なる列からのいくつかの引数を持つデータフレームに関数を適用します

  24. 24

    データフレーム列パンダに関数を適用する

  25. 25

    パンダ、データフレームの行エントリである引数を適用します

  26. 26

    パンダのデータフレームに数値の上限/しきい値を適用する

  27. 27

    日付にループし、パンダのデータフレームに関数を適用する

  28. 28

    Pythonデータフレームは、列ごとにグループごとに関数を適用します

  29. 29

    列ごとにPandasデータフレームに関数を適用する

ホットタグ

アーカイブ