Data Analysis

高效向Pandas DataFrame添加行

Spread the love

Pandas DataFrame是Python数据处理的基石。高效地添加行是一项常见任务,本文详细介绍了向DataFrame追加单行的最佳实践。

目录

使用.loc高效添加行

.loc访问器提供了一种最有效和直接的添加行的方法。在处理大型DataFrame时,它尤其具有优势,可以最大限度地减少性能开销。您可以指定新行的索引,并提供数据作为列表或NumPy数组。


import pandas as pd
import numpy as np

# 示例DataFrame
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)

# 新行数据作为列表
new_row_list = [4, 7]

# 使用.loc添加新行
df.loc[len(df)] = new_row_list

print("使用列表:n", df)


# 新行数据作为NumPy数组
new_row_array = np.array([5,8])

# 使用.loc和NumPy数组添加新行
df.loc[len(df)] = new_row_array

print("n使用NumPy数组:n",df)

这种方法直接修改DataFrame的底层结构,使其比其他方法更快。输出显示已追加的新行。

使用字典提高可读性

当处理许多列时,使用字典表示新行可以提高代码的可读性。字典键对应于列名,值是行的值。pd.concat有效地将现有的DataFrame与新行组合。


import pandas as pd

# 示例DataFrame
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data)

# 新行数据作为字典
new_row_dict = {'col1': 5, 'col2': 8}

# 使用pd.concat添加新行
df = pd.concat([df, pd.DataFrame([new_row_dict])], ignore_index=True)

print(df)

ignore_index=True确保正确的索引处理,防止出现重复索引。

为什么应该避免使用append()方法

在现代Pandas版本中,append()方法已被弃用。它效率较低,并可能导致意外行为。.loc和基于字典的方法在性能和可维护性方面更胜一筹。始终优先选择上面描述的更高效和受支持的方法。

发表回复

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