Pandas行数据添加完全指南 - Python数据分析技巧
- Python
- 2025-07-17
- 1576
Pandas行数据添加完全指南
掌握多种方法在DataFrame中添加行数据
Python
Pandas
数据分析
Pandas行添加的重要性
在数据分析工作中,向现有数据集添加新行是一项常见任务。无论是新增记录、合并数据集还是更新信息,掌握高效的添加行方法至关重要。
本教程将详细介绍Pandas中添加行数据的三种主要方法:loc[]
、append()
和concat()
,并分析它们的适用场景和性能特点。
方法一:使用loc添加行
loc[]
是Pandas中最常用的行标签索引器,也可用于添加新行。
基本用法
import pandas as pd
# 创建初始DataFrame
df = pd.DataFrame({
'姓名': ['张三', '李四'],
'年龄': [25, 30],
'城市': ['北京', '上海']
})
# 使用loc添加新行
df.loc[2] = ['王五', 28, '广州']
print(df)
添加多行
# 添加多行数据
new_rows = [
['赵六', 35, '深圳'],
['钱七', 40, '杭州']
]
for row in new_rows:
df.loc[len(df)] = row
print(df)
优点与注意事项
- 直接修改原始DataFrame,无需创建副本
- 适用于少量行的添加
- 添加多行时效率较低(推荐使用concat代替)
- 确保新行数据的顺序与列顺序匹配
方法二:使用append添加行
append()
方法用于将其他DataFrame或类似结构的数据添加到现有DataFrame的末尾。
基本用法
# 创建新行DataFrame
new_data = pd.DataFrame({
'姓名': ['孙八'],
'年龄': [45],
'城市': ['南京']
})
# 使用append添加行
df = df.append(new_data, ignore_index=True)
print(df)
添加字典数据
# 添加字典形式的数据
df = df.append(
{'姓名': '周九', '年龄': 33, '城市': '成都'},
ignore_index=True
)
print(df)
重要说明
在Pandas 1.4.0及以上版本中,append()
方法已被标记为弃用,并将在未来版本中移除。官方推荐使用concat()
替代。
方法三:使用concat添加行(推荐)
concat()
是Pandas中最灵活、最高效的数据合并方法,尤其适合批量添加行。
基本用法
# 创建新行DataFrame
new_rows = pd.DataFrame({
'姓名': ['吴十', '郑十一'],
'年龄': [29, 31],
'城市': ['武汉', '西安']
})
# 使用concat添加行
df = pd.concat([df, new_rows], ignore_index=True)
print(df)
性能优势
与循环添加或append相比,concat在添加大量行时性能更优:
添加1000行测试
loc[]
循环: ~120msappend()
: ~60msconcat()
: ~5ms
添加10000行测试
loc[]
循环: ~1200msappend()
: ~550msconcat()
: ~25ms
方法比较与最佳实践
方法 | 适用场景 | 性能 | 是否原地修改 | 未来兼容性 |
---|---|---|---|---|
loc[] |
添加单行或少量行 | 低 | 是 | 良好 |
append() |
添加少量行(已弃用) | 中 | 否 | 差 |
concat() |
添加单行或多行(推荐) | 高 | 否 | 优秀 |
最佳实践总结
- 少量行添加:使用
loc[]
方法简单直接 - 批量行添加:始终使用
concat()
以获得最佳性能 - 避免使用:
append()
方法(已弃用) - 索引处理:使用
ignore_index=True
重置索引 - 内存考虑:大文件操作时使用
concat()
减少内存占用
常见问题解答
Q1: 添加行时出现列不匹配错误怎么办?
确保新数据的列与原始DataFrame匹配。可以使用reindex()
对齐列:
new_row = pd.Series({'姓名': '董十二', '年龄': 27, '城市': '重庆'})
new_row = new_row.reindex(df.columns)
df = pd.concat([df, new_row.to_frame().T], ignore_index=True)
Q2: 如何高效添加大量数据行?
推荐方法:
- 收集所有新行数据到一个列表中
- 一次性创建新DataFrame
- 使用
concat()
合并
# 收集新数据
new_data_list = [
{'姓名': '魏十三', '年龄': 38, '城市': '天津'},
{'姓名': '蒋十四', '年龄': 42, '城市': '苏州'}
]
# 批量创建DataFrame
new_df = pd.DataFrame(new_data_list)
# 高效合并
df = pd.concat([df, new_df], ignore_index=True)
结论
掌握Pandas中添加行数据的方法对数据分析工作至关重要。虽然Pandas提供了多种添加行的方法,但根据场景选择合适的方法可以显著提高代码效率和可维护性。
总结建议:
- 少量行添加 → 使用
loc[]
- 批量行添加 → 使用
concat()
- 避免使用 →
append()
(已弃用)
高效的数据操作是数据分析工作的基础,掌握这些技巧将使你的Pandas代码更加专业和高效。
本文由LaiRong于2025-07-17发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://pjw.521pj.cn/20255779.html
发表评论