既存のデータフレームの条件に基づいて新しいデータフレームを作成します

anarz

既存のデータフレームの条件に応じて、0または1のいずれかを含む1つの列を持つ新しいデータフレームを作成したいと思います。

df(既存の)データフレームで、列a、b、cの値に同時にゼロが含まれているかどうかを確認したいと思います。その場合は、条件が満たされた場合にゼロを返す1つの列を持つ新しいデータフレームを作成します。それ以外の場合は1を返します。

既存のデータフレームの例:

df = pd.DataFrame({"a":[0,1,0,0],"b":[0,None,0,None],"c":[0,8,0,10],"new_col":[5,5,5,5]})
mylist = ['a','b','c']

if any((df[mylist] == 0).all(1).values):
    print('all zeros')
else:
    print('contains nonzero')

希望する結果を得るために、printステートメントの代わりに何を配置すればよいかわかりません。

必要なデータフレーム:

df_new = pd.DataFrame({'col':[0,1,0,1]})

前もって感謝します!

ジェズリール

チェックの条件を変更する必要があると思いますany

df['out'] = (df[mylist] != 0).any(1).astype(int)
print (df)
   a    b   c  new_col  out
0  0  0.0   0        5    0
1  1  NaN   8        5    1
2  0  0.0   0        5    0
3  0  NaN  10        5    1

新しいDataFrameが必要な場合:

df1 = (df[mylist] != 0).any(1).astype(int).to_frame('col')
print (df1)
   col
0    0
1    1
2    0
3    1

「if」ステートメントを使用する必要があります

パンダでは-if-elseから機能を使用していますnumpynumpy.where

df['out'] = np.where((df[mylist] != 0).any(1), 1, 0)
print (df)
   a    b   c  new_col  out
0  0  0.0   0        5    0
1  1  NaN   8        5    1
2  0  0.0   0        5    0
3  0  NaN  10        5    1

での解決if-elseも可能ですが、遅いので使用しないでください:

out = []

for x in (df[mylist] == 0).all(1).values:
    if np.any(x):
        out.append(0)
    else:
        out.append(1)

df['out'] = out
print (df)
   a    b   c  new_col  out
0  0  0.0   0        5    0
1  1  NaN   8        5    1
2  0  0.0   0        5    0
3  0  NaN  10        5    1 

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

既存の列の条件に基づいて、データフレームに新しい列を作成します

分類Dev

R:既存のデータフレームの複数の条件に基づいて新しいデータフレームを作成する

分類Dev

データフレーム内の既存の時間列に基づいて新しい列を作成します

分類Dev

既存の変数に基づいてデータフレームに新しい変数を作成します

分類Dev

既存のデータフレームからの平日に基づいて、新しいデータフレームを分割して作成します

分類Dev

既存のデータフレーム行に基づいて新しいデータフレームの列が作成されるように、既存のデータフレームからSparkデータフレームを作成します

分類Dev

別のデータフレームの日付条件に基づいて新しい列を作成します

分類Dev

別のデータフレームforループの条件に基づいて新しいデータフレームを作成します

分類Dev

別のデータフレームに基づいて新しいデータフレームを作成する

分類Dev

既存の列に基づいてデータフレームに新しい累積列を作成する

分類Dev

論理否定に基づいて既存のデータフレームから新しいデータフレームを作成する

分類Dev

Rの条件に基づいて、データフレームに複数の新しい列を追加します

分類Dev

条件を含む文字列に基づいてデータフレームの新しい列を作成する方法

分類Dev

別のデータフレームの条件に基づいて新しいデータフレームを作成する方法

分類Dev

複数のデータフレームの条件に基づいて新しいデータフレームを作成する

分類Dev

列の複数の値に基づいてデータフレームに新しい行を作成します

分類Dev

条件に基づいてデータフレームの行を削除します

分類Dev

条件に基づいてデータフレームの値を代入します

分類Dev

特定の値の行に基づいて新しいデータフレームを作成します

分類Dev

複数の列の値に基づいて新しいデータフレーム列を作成します

分類Dev

pandasデータフレームの他の列に基づいて新しい列を作成します

分類Dev

リストとデータフレームに基づいて複数の条件を持つデータフレームに新しい列を追加します

分類Dev

パンダ-別のデータフレームに基づいて新しいデータフレームをどのように作成しますか?

分類Dev

R-条件に基づいてデータフレームに新しい列を作成します

分類Dev

パンダは、異なるデータフレームの各行の情報に基づいて新しいデータフレームを作成します

分類Dev

データフレームの他の列に基づいて、新しいpandasデータフレーム列を作成します

分類Dev

既存の列の値に基づいてpandasデータフレームに新しい列を追加する

分類Dev

R-既存の列と一致する値のインデックスに基づいて新しい列データフレームを作成します

分類Dev

データフレームは、他の列に基づいて新しい列を作成します

Related 関連記事

  1. 1

    既存の列の条件に基づいて、データフレームに新しい列を作成します

  2. 2

    R:既存のデータフレームの複数の条件に基づいて新しいデータフレームを作成する

  3. 3

    データフレーム内の既存の時間列に基づいて新しい列を作成します

  4. 4

    既存の変数に基づいてデータフレームに新しい変数を作成します

  5. 5

    既存のデータフレームからの平日に基づいて、新しいデータフレームを分割して作成します

  6. 6

    既存のデータフレーム行に基づいて新しいデータフレームの列が作成されるように、既存のデータフレームからSparkデータフレームを作成します

  7. 7

    別のデータフレームの日付条件に基づいて新しい列を作成します

  8. 8

    別のデータフレームforループの条件に基づいて新しいデータフレームを作成します

  9. 9

    別のデータフレームに基づいて新しいデータフレームを作成する

  10. 10

    既存の列に基づいてデータフレームに新しい累積列を作成する

  11. 11

    論理否定に基づいて既存のデータフレームから新しいデータフレームを作成する

  12. 12

    Rの条件に基づいて、データフレームに複数の新しい列を追加します

  13. 13

    条件を含む文字列に基づいてデータフレームの新しい列を作成する方法

  14. 14

    別のデータフレームの条件に基づいて新しいデータフレームを作成する方法

  15. 15

    複数のデータフレームの条件に基づいて新しいデータフレームを作成する

  16. 16

    列の複数の値に基づいてデータフレームに新しい行を作成します

  17. 17

    条件に基づいてデータフレームの行を削除します

  18. 18

    条件に基づいてデータフレームの値を代入します

  19. 19

    特定の値の行に基づいて新しいデータフレームを作成します

  20. 20

    複数の列の値に基づいて新しいデータフレーム列を作成します

  21. 21

    pandasデータフレームの他の列に基づいて新しい列を作成します

  22. 22

    リストとデータフレームに基づいて複数の条件を持つデータフレームに新しい列を追加します

  23. 23

    パンダ-別のデータフレームに基づいて新しいデータフレームをどのように作成しますか?

  24. 24

    R-条件に基づいてデータフレームに新しい列を作成します

  25. 25

    パンダは、異なるデータフレームの各行の情報に基づいて新しいデータフレームを作成します

  26. 26

    データフレームの他の列に基づいて、新しいpandasデータフレーム列を作成します

  27. 27

    既存の列の値に基づいてpandasデータフレームに新しい列を追加する

  28. 28

    R-既存の列と一致する値のインデックスに基づいて新しい列データフレームを作成します

  29. 29

    データフレームは、他の列に基づいて新しい列を作成します

ホットタグ

アーカイブ