[解決済み】Pandasでシリーズ/データフレームのカラムを条件付きで作成する。
2022-03-24 20:19:09
質問
以下のようなデータフレームがあります。
Type Set
1 A Z
2 B Z
3 B X
4 C Y
データフレームと同じ長さ(同じ数のレコード/行)の、色を設定する別の列をデータフレームに追加したい(または系列を生成する)。
'green'
もし
Set == 'Z'
と
'red'
もし
Set
は他の何かと等しい。
どうすればいいのでしょうか?
どのように解決するのですか?
選択肢が2つしかない場合。
df['color'] = np.where(df['Set']=='Z', 'green', 'red')
例えば
import pandas as pd
import numpy as np
df = pd.DataFrame({'Type':list('ABBC'), 'Set':list('ZZXY')})
df['color'] = np.where(df['Set']=='Z', 'green', 'red')
print(df)
イールド
Set Type color
0 Z A green
1 Z B green
2 X B red
3 Y C red
条件が2つ以上ある場合は
np.select
. たとえば、次のような場合です。
color
になります。
-
yellow
いつ(df['Set'] == 'Z') & (df['Type'] == 'A')
-
それ以外の場合
blue
いつ(df['Set'] == 'Z') & (df['Type'] == 'B')
-
それ以外の場合
purple
いつ(df['Type'] == 'B')
-
それ以外の場合
black
,
であれば
df = pd.DataFrame({'Type':list('ABBC'), 'Set':list('ZZXY')})
conditions = [
(df['Set'] == 'Z') & (df['Type'] == 'A'),
(df['Set'] == 'Z') & (df['Type'] == 'B'),
(df['Type'] == 'B')]
choices = ['yellow', 'blue', 'purple']
df['color'] = np.select(conditions, choices, default='black')
print(df)
となり、その結果
Set Type color
0 Z A yellow
1 Z B blue
2 X B purple
3 Y C black
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] Pandasシリーズ/DataFrame全体をプリティプリントする
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] pandas dataframeのif else関数 [重複]。