Pandas DataFrame是Python数据处理的基石。添加新列是一项常见任务,Pandas提供了多种高效的方法来实现。本文探讨四种关键方法,突出它们的优缺点,帮助您根据实际情况选择最佳方法。
目录
[] 运算符方法:快速简便的方法
这是最简单的方法,非常适合根据现有数据或简单的计算添加列。您可以使用方括号直接为新列赋值。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df['City'] = ['New York', 'London', 'Paris']
print(df)
局限性:此方法无法在特定位置插入,并且要求新列数据与DataFrame的长度匹配。
df.insert()
方法:精确的列位置
df.insert()
提供了更多控制,允许您指定列的索引(位置)。它接受三个参数:位置、列名和数据。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.insert(1, 'City', ['New York', 'London', 'Paris'])
print(df)
最适合:列顺序至关重要的场合。
df.assign()
方法:高效添加多列
df.assign()
特别适用于一次添加多列或根据计算创建新列。重要的是,它返回一个*新的*DataFrame,而原始DataFrame保持不变。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df = df.assign(City=['New York', 'London', 'Paris'], Age_Squared=df['Age']**2)
print(df)
最适合:多列添加和计算列;其不变性可防止意外数据丢失。
df.loc()
方法:条件列创建
df.loc()
提供了最大的灵活性,允许根据行选择和布尔索引创建条件列。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.loc[df['Age'] < 30, 'Age_Group'] = 'Young'
df.loc[df['Age'] >= 30, 'Age_Group'] = 'Older'
print(df)
最适合:基于复杂条件添加列;需要熟悉布尔索引。
结论:最佳方法取决于您的具体需求。[] 运算符适用于简单的添加,df.insert()
控制列位置,df.assign()
高效处理多个或计算列,df.loc()
允许创建条件列。选择最能平衡可读性和功能的方法来完成您的任务。