パンダ: 列が存在しない場合に列を作成する方法


pandas DataFrame に列が存在しない場合は、次の基本構文を使用して列を作成できます。

 df[' my_column '] = df. get (' my_column ', df[' col1 '] * df[' col2 ']) 

この特定の構文は、 my_columnという新しい列が DataFrame に存在せず、既存の列Col1Col2の積として定義されている場合に作成します。

次の例は、この構文を実際に使用する方法を示しています。

例: Pandas に列が存在しない場合は作成します。

次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                   ' sales ': [4, 6, 5, 8, 14, 13, 13, 12, 9, 8, 19, 14],
                   ' price ': [1, 2, 2, 1, 2, 4, 4, 3, 3, 2, 2, 3]})

#view DataFrame
print (df)

    day sales price
0 1 4 1
1 2 6 2
2 3 5 2
3 4 8 1
4 5 14 2
5 6 13 4
6 7 13 4
7 8 12 3
8 9 9 3
9 10 8 2
10 11 19 2
11 12 14 3

ここで、 priceという列がまだ存在しない場合は追加し、各値が 100 である列として定義するとします。

 #attempt to add column called 'price'
df[' price '] = df. get (' price ', 100)    

#view updated DataFrame
print (df)

    day sales price
0 1 4 1
1 2 6 2
2 3 5 2
3 4 8 1
4 5 14 2
5 6 13 4
6 7 13 4
7 8 12 3
8 9 9 3
9 10 8 2
10 11 19 2
11 12 14 3

Priceという列がすでに存在するため、pandas はそれを DataFrame に追加しません。

ただし、 revenueという新しい列が存在しない場合は追加し、値が sales 列とprice 列の積である列として定義するとします。

 #attempt to add column called 'revenue'
df[' revenue '] = df. get (' revenue ', df[' sales '] * df[' price '])

#view updated DataFrame
print (df)

    day sales price revenue
0 1 4 1 4
1 2 6 2 12
2 3 5 2 10
3 4 8 1 8
4 5 14 2 28
5 6 13 4 52
6 7 13 4 52
7 8 12 3 36
8 9 9 3 27
9 10 8 2 16
10 11 19 2 38
11 12 14 3 42

この収益列はまだ存在していないため、DataFrame に追加されます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

条件に基づいて Pandas DataFrame の行を削除する方法
複数の条件で Pandas DataFrame をフィルタリングする方法
Pandas DataFrame で「NOT IN」フィルターを使用する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です