Python 中的 Pandas 插入方法
Suraj Joshi
2023年1月30日
2021年1月22日
本教程解释了如何使用 insert()
方法在 Pandas 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 来解释如何使用 insert()
方法在 Pandas DataFrame 中插入一列。
pandas.DataFrame.insert()
方法
语法
DataFrame.insert(loc,
column,
value,
allow_duplicates=False)
它将名为 column
的列插入到 DataFrame
中,其值由 value
指定,位于 loc
位置。
使用 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 的 3
索引位置插入 ·Capital·列,所有行的 ·Capital·列值均设置为 Unknown
。
该位置从 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
中的索引 2
插入了列 Capital
,并为 DataFrame 中的 Capital
列指定了每一行的值。
在 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
它将列 Capital
添加到 countries_df
DataFrame 中,尽管 countries_df
DataFrame 中已经存在 Capital
列。
如果我们尝试插入已经存在于 DataFrame 中的列,而没有在 insert()
方法中设置 allow_duplicates = True
,它就会向我们抛出一个错误信息:ValueError: cannot insert column, already exists.
。
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn