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