Pandas の Insert メソッド

このチュートリアルでは、Pandas DataFrame の insert()
メソッドを使用して、DataFrame に列を挿入する方法を説明します。
import pandas as pd
countries_df = pd.DataFrame({
'Country': ["Nepal","Switzerland","Germany","Canada"],
'Continent': ["Asia","Europe","Europe","North America"],
'Primary Language':["Nepali","French","German","English"]
})
print("Countries DataFrame:")
print(countries_df,"\n")
出力:
Countries DataFrame:
Country Continent Primary Language
0 Nepal Asia Nepali
1 Switzerland Europe French
2 Germany Europe German
3 Canada North America English
上記の例で示した countries_df
DataFrame を使用して、Pandas DataFrame で insert()
メソッドを使用して DataFrame に列を挿入する方法を説明します。
Python の pandas.DataFrame.insert()
メソッド
構文
DataFrame.insert(loc,
column,
value,
allow_duplicates=False)
これは column
という名前のカラムを loc
の位置に value
で指定した値を持つ DataFrame
に挿入します。
すべての行に対して同じ値を持つ列を insert()
メソッドを用いて挿入する
import pandas as pd
countries_df = pd.DataFrame({
'Country': ["Nepal","Switzerland","Germany","Canada"],
'Continent': ["Asia","Europe","Europe","North America"],
'Primary Language':["Nepali","French","German","English"]
})
print("Countries DataFrame:")
print(countries_df,"\n")
countries_df.insert(3,"Capital","Unknown")
print("Countries DataFrame after inserting Capital column:")
print(countries_df)
出力:
Countries DataFrame:
Country Continent Primary Language
0 Nepal Asia Nepali
1 Switzerland Europe French
2 Germany Europe German
3 Canada North America English
Countries DataFrame after inserting Capital column:
Country Continent Primary Language Capital
0 Nepal Asia Nepali Unknown
1 Switzerland Europe French Unknown
2 Germany Europe German Unknown
3 Canada North America English Unknown
この関数は countries_df
DataFrame の Capital
列を Unknown
に設定した状態で 3
の位置に挿入します。
この位置は 0
から始まるので、位置 3
は DataFrame の 4
番目のカラムを参照しています。
各行の値を指定して DataFrame に列を挿入する
insert()
メソッドを用いて挿入する列の各行の値を指定したい場合は、insert()
メソッドの value
引数に値のリストを渡すことができます。
import pandas as pd
countries_df = pd.DataFrame({
'Country': ["Nepal","Switzerland","Germany","Canada"],
'Continent': ["Asia","Europe","Europe","North America"],
'Primary Language':["Nepali","French","German","English"]
})
print("Countries DataFrame:")
print(countries_df,"\n")
capitals=["Kathmandu","Zurich","Berlin","Ottawa"]
countries_df.insert(2,"Capital",capitals)
print("Countries DataFrame after inserting Capital column:")
print(countries_df)
出力:
Countries DataFrame:
Country Continent Primary Language
0 Nepal Asia Nepali
1 Switzerland Europe French
2 Germany Europe German
3 Canada North America English
Countries DataFrame after inserting Capital column:
Country Continent Capital Primary Language
0 Nepal Asia Kathmandu Nepali
1 Switzerland Europe Zurich French
2 Germany Europe Berlin German
3 Canada North America Ottawa English
DataFrame countries_df
の Capital
列を 2
の位置に挿入します。
既存の列を追加するために insert()
メソッドで allow_duplicates = True
を設定する
import pandas as pd
countries_df = pd.DataFrame({
'Country': ["Nepal","Switzerland","Germany","Canada"],
'Continent': ["Asia","Europe","Europe","North America"],
'Primary Language':["Nepali","French","German","English"],
'Capital':["Kathmandu","Zurich","Berlin","Ottawa"]
})
print("Countries DataFrame:")
print(countries_df,"\n")
capitals=["Kathmandu","Zurich","Berlin","Ottawa"]
countries_df.insert(4,"Capital",capitals,allow_duplicates = True)
print("Countries DataFrame after inserting Capital column:")
print(countries_df)
出力:
Countries DataFrame:
Country Continent Primary Language Capital
0 Nepal Asia Nepali Kathmandu
1 Switzerland Europe French Zurich
2 Germany Europe German Berlin
3 Canada North America English Ottawa
Countries DataFrame after inserting Capital column:
Country Continent Primary Language Capital Capital
0 Nepal Asia Nepali Kathmandu Kathmandu
1 Switzerland Europe French Zurich Zurich
2 Germany Europe German Berlin Berlin
3 Canada North America English Ottawa Ottawa
これは、countries_df
の DataFrame に Capital
という列が既に存在しているにもかかわらず、countries_df
の DataFrame に Capital
という列を追加します。
insert()
メソッドで allow_duplicates = True
を設定せずに既に存在する列を DataFrame に挿入しようとすると、以下のようなメッセージを含むエラーが発生します。ValueError: cannot insert column, already exists.
というメッセージでエラーをスローします。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn関連記事 - Pandas DataFrame Column
- Pandas DataFrame の列ヘッダーをリストとして取得する方法
- Pandas DataFrame 列を削除する方法
- Pandas で DataFrame 列を日時に変換する方法
- Pandas 列の合計を取得する方法
- Pandas DataFrame 列の順序を変更する方法
- Pandas で DataFrame 列を文字列に変換する方法