Pandas 新增欄位教學 - 5個方法
目录
概述
在处理pandas数据框时,经常会遇到需要添加新列的情况。新的列可以是从原始数据框派生出来的,也可以是新数据的添加。无论是哪种情况,您都需要不断地向数据框中添加新的数据。本文将介绍5种常见的方法来向pandas数据框添加新的列。
方法一:直接传递标量或列表来添加新列
第一种方法是直接将新的列传递给数据框,并将其设置为标量或值列表。可以通过以下代码示例来演示:
import pandas as pd
data = {'name': ['Restaurant A', 'Restaurant B', 'Restaurant C'],
'type': ['Fast Food', 'Café', 'Italian'],
'average_bill': [20, 30, 40]}
df = pd.DataFrame(data)
# 添加一个名为'day'的新列,并将其设置为标量值
df['day'] = 'Monday'
# 添加一个名为'day'的新列,并将其设置为值列表
df['day'] = ['Monday', 'Tuesday', 'Wednesday']
# 根据名称添加一个新列,并将其设置为值列表
df['day'] = ['Monday', 'Tuesday', 'Wednesday', 'Thursday']
优点:
- 简单直接,适用于需要添加具有相同值的新列或相同长度的值列表的情况。
缺点:
方法二:使用df.insert
方法指定列的位置
第二种方法是使用df.insert
方法来指定新列出现的位置。示例如下:
import pandas as pd
data = {'name': ['Restaurant A', 'Restaurant B', 'Restaurant C'],
'type': ['Fast Food', 'Café', 'Italian'],
'average_bill': [20, 30, 40]}
df = pd.DataFrame(data)
# 在'name'和'type'之间插入一个名为'stars'的新列,并将其设置为四个值
df.insert(loc=1, column='stars', value=[4, 3, 5])
优点:
缺点:
方法三:使用df.assign
方法传递多个列
第三种方法是使用df.assign
方法一次传递多个列。示例如下:
import pandas as pd
data = {'name': ['Restaurant A', 'Restaurant B', 'Restaurant C'],
'type': ['Fast Food', 'Café', 'Italian'],
'average_bill': [20, 30, 40]}
df = pd.DataFrame(data)
# 添加一个名为'average_half_bill'的新列,根据'average_bill'列计算平均值的一半
df = df.assign(average_half_bill=lambda x: x['average_bill'] / 2)
优点:
- 可以一次传递多个列,并且可以使用lambda函数对列进行转换。
缺点:
方法四:使用字典来添加新列
第四种方法是使用字典来添加新列。示例如下:
import pandas as pd
data = {'name': ['Restaurant A', 'Restaurant B', 'Restaurant C'],
'type': ['Fast Food', 'Café', 'Italian'],
'average_bill': [20, 30, 40]}
df = pd.DataFrame(data)
# 添加一个名为'month'的新列,并将其设置为字典的值
df = df.assign(month={'Restaurant A': 'January', 'Restaurant B': 'February', 'Restaurant C': 'April'})
优点:
缺点:
方法五:不推荐使用loc
方法添加新列
第五种方法是使用loc
方法添加新列,但这种方法不推荐使用。示例如下:
import pandas as pd
data = {'name': ['Restaurant A', 'Restaurant B', 'Restaurant C'],
'type': ['Fast Food', 'Café', 'Italian'],
'average_bill': [20, 30, 40]}
df = pd.DataFrame(data)
# 使用loc方法添加新列,并设置为新的值
df.loc[:, 'year'] = [2020, 2021, 2022, 2023]
优点:
缺点:
总结
本文介绍了5种向pandas数据框添加新列的方法。这些方法包括直接传递标量或列表、使用df.insert
方法指定位置、使用df.assign
方法传递多个列、使用字典来添加新列,以及使用loc
方法添加新列。根据具体的需求,可以选择最合适的方法来添加新列。