将新列添加到 Python Pandas 中的现有 DataFrame
Ahmed Waheed
2023年1月30日
-
在 Pandas 中
[]
运算符方法添加新列 -
在 Pandas 中
df.insert()
方法可添加新列 -
在 Pandas 中
df.assign()
方法可添加新列 -
在 Pandas 中
df.loc()
方法添加新列
使用大型数据集时,经常会向现有 DataFrame 添加新列。例如,现有的 DataFrame
具有 First
,Last
和 Age
列,我们需要为其添加新的列 city
。下面列出了完成此任务的不同方法。
[]
运算符方法df.insert()
方法df.assign()
方法df.loc()
方法
在以下各节中,我们将使用相同的 DataFrame
,如下所示:
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
print(df)
输出:
First Last Age
0 Ali Azmat 30
1 Sharukh Khan 40
2 Linus Torvalds 70
在 Pandas 中 []
运算符方法添加新列
我们可以使用 []
运算符向现有 DataFrame 添加新列。
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
city = ["Lahore", "Dehli", "New York"]
df["city"] = city
print(df)
输出:
First Last Age city
0 Ali Azmat 30 Lahore
1 Sharukh Khan 40 Dehli
2 Linus Torvalds 70 New York
在 Pandas 中 df.insert()
方法可添加新列
如果要在特定索引处添加新列,则可以使用 df.insert()
函数。df.insert()
函数的第一个参数是从零开始的插入索引。
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df.insert(3, "city", ["Lahore", "Dehli", "New York"], True)
print(df)
输出:
First Last Age city
0 Ali Azmat 30 Lahore
1 Sharukh Khan 40 Dehli
2 Linus Torvalds 70 New York
在 Pandas 中 df.assign()
方法可添加新列
df.assign()
也可用于向现有 DataFrame 添加新列。
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df = df.assign(city=["Lahore", "Dehli", "New York"])
print(df)
输出:
First Last Age city
0 Ali Azmat 30 Lahore
1 Sharukh Khan 40 Dehli
2 Linus Torvalds 70 New York
让我们看看如何使用 df.assign()
添加多列。下面的示例将添加 city
和 score
列。
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df = df.assign(city=["Lahore", "Dehli", "New York"], score=[20, 30, 40])
print(df)
输出:
First Last Age city score
0 Ali Azmat 30 Lahore 20
1 Sharukh Khan 40 Dehli 30
2 Linus Torvalds 70 New York 40
在 Pandas 中 df.loc()
方法添加新列
df.loc()
方法还可以将新列添加到现有 DataFrame 中。
import pandas as pd
data = [["Ali", "Azmat", "30"], ["Sharukh", "Khan", "40"], ["Linus", "Torvalds", "70"]]
df = pd.DataFrame(data, columns=["First", "Last", "Age"])
df.loc[:, "city"] = ["Lahore", "Dehli", "New York"]
print(df)
输出:
First Last Age city
0 Ali Azmat 30 Lahore
1 Sharukh Khan 40 Dehli
2 Linus Torvalds 70 New York