將新列新增到 Python Pandas 中的現有 DataFrame
Ahmed Waheed
2023年1月30日
2020年6月9日
-
在 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