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

  1. Pandas に新しい列を追加するための [] 演算子メソッド
  2. Pandas に新しい列を追加する df.insert() メソッド
  3. Pandas に新しい列を追加するための df.assign() メソッド
  4. Pandas に新しい列を追加するための df.loc() メソッド

大きなデータセットを扱う場合、既存の 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
comments powered by Disqus