Python pandas の既存の DataFrame に新しい列を追加する

Ahmed Waheed 2020年6月25日 2020年6月13日 Pandas
  1. Pandas に新しい列を追加するための [] 演算子メソッド
  2. Pandas に新しい列を追加する df.insert() メソッド
  3. Pandas に新しい列を追加するための df.assign() メソッド
  4. Pandas に新しい列を追加するための df.loc() メソッド
Python pandas の既存の DataFrame に新しい列を追加する

大きなデータセットを扱う場合、既存の DataFrame に新しい列を追加することは非常に頻繁に使用されます。たとえば、既存の DataFrame には FirstLastAge 列があり、それに新しい列 city を追加する必要があります。このタスクを達成するためのさまざまな方法を以下に示します。

  1. [] 演算子メソッド
  2. df.insert() メソッド
  3. df.assign() メソッド
  4. df.loc() メソッド

次のセクションでは、次のように同じ DataFrame を使用します。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age'])
print(df)

出力:

     First      Last Age
0      Ali     Azmat  30
1  Sharukh      Khan  40
2    Linus  Torvalds  70

Pandas に新しい列を追加するための [] 演算子メソッド

[] 演算子を使用して、既存の DataFrame に新しい列を追加できます。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 
city = ['Lahore','Dehli','New York']
df['city'] = city
print(df)

出力:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

Pandas に新しい列を追加する df.insert() メソッド

特定のインデックスに新しい列を追加したい場合は、df.insert() 関数を使用できます。df.insert() 関数の最初のパラメーターは、ゼロから始まる挿入インデックスです。

import pandas as pd
data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 
df.insert(3,"city",['Lahore','Dehli','New York'],True)
print(df)

出力:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

Pandas に新しい列を追加するための df.assign() メソッド

df.assign() は、既存の DataFrame に新しい列を追加するためにも使用できます。

import pandas as pd

data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 

df = df.assign(city = ['Lahore','Dehli','New York'])
print(df)

出力:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York

df.assign() を使用して複数の列を追加する方法を見てみましょう。以下の例では、city 列と score 列を追加します。

import pandas as pd

data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 

df = df.assign(city = ['Lahore','Dehli','New York'], 
               score = [20,30,40])
print(df)

出力:

     First      Last Age      city  score
0      Ali     Azmat  30    Lahore     20
1  Sharukh      Khan  40     Dehli     30
2    Linus  Torvalds  70  New York     40

Pandas に新しい列を追加するための df.loc() メソッド

df.loc() メソッドは、既存の DataFrame に新しい列を追加することもできます。

import pandas as pd

data = [
    ['Ali',
     'Azmat',
     '30'],
    ['Sharukh',
     'Khan',
     '40'],
    ['Linus',
     'Torvalds',
     '70']
]
df = pd.DataFrame(data,columns=['First','Last','Age']) 
df.loc[:,'city'] = ['Lahore','Dehli','New York']
print(df)

出力:

     First      Last Age      city
0      Ali     Azmat  30    Lahore
1  Sharukh      Khan  40     Dehli
2    Linus  Torvalds  70  New York