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