Data Science

Pandas高手技巧:四种添加DataFrame列的方法

Spread the love

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() 允许创建条件列。选择最能平衡可读性和功能的方法来完成您的任务。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注