Pandas – dataframe.insert()
Pandas的插入方法允许用户在一个数据框架或系列(1-D数据框架)中插入一列。也可以通过以下方法在数据框架中手动插入一列,但这里没有太多的自由。
例如,即使是列的位置也不能决定,因此,插入的列总是插入在最后的位置。
语法:
DataFrameName.insert(loc, column, value, allow_duplicates = False)
参数:
loc: loc是一个整数,是我们要插入新列的位置。这将使该位置上的现有列向右移动。
column: column是一个字符串,是要插入的列的名称。
value: value是简单的要插入的值。它可以是int, string, float或任何东西,甚至是系列/列表的值。只提供一个值将为所有行设置相同的值。
allow_duplicates : allow_duplicates是一个布尔值,用于检查同名的列是否已经存在。
从这里找到所用的csv文件的链接。
插入一个具有静态值的列。
# importing pandas module
import pandas as pd
# reading csv file
data = pd.read_csv("pokemon.csv")
# displaying dataframe - Output 1
data.head()
输出:
插入列后
# importing pandas module
import pandas as pd
# reading csv file
data = pd.read_csv("pokemon.csv")
# displaying dataframe - Output 1
data.head()
# inserting column with static value in data frame
data.insert(2, "Team", "Any")
# displaying data frame again - Output 2
data.head()
传递每行不同值的系列。
在这个例子中,我们创建了一个系列,并通过for循环向该系列传递一些数值。之后,系列被传递到pandas的insert函数中,以传递的值追加到数据框中的系列。
# importing pandas module
import pandas as pd
# creating a blank series
Type_new = pd.Series([])
# reading csv file
data = pd.read_csv("pokemon.csv")
# running a for loop and assigning some values to series
for i in range(len(data)):
if data["Type"][i] == "Grass":
Type_new[i]="Green"
elif data["Type"][i] == "Fire":
Type_new[i]="Orange"
elif data["Type"][i] == "Water":
Type_new[i]="Blue"
else:
Type_new[i]= data["Type"][i]
# inserting new column with values of list made above
data.insert(2, "Type New", Type_new)
# list output
data.head()
输出: