python 往pandas.DataFrame里添加元素
时间: 2025-07-14 09:04:18 浏览: 5
### 向 Pandas DataFrame 添加新的行或列
Pandas 提供了多种方式向 `DataFrame` 中添加新的行或列,以满足不同的数据操作需求。以下是一些常用的方法。
#### 添加新列
可以通过直接赋值的方式向 `DataFrame` 添加新列。只需使用方括号指定新列的名称,并为其分配一个列表或数组即可[^1]:
```python
import pandas as pd
# 创建初始 DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
# 添加新列 'gender'
df['gender'] = ['F', 'M', 'M']
print(df)
```
输出结果为:
```
name age gender
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
```
这种方式适用于在已有数据基础上快速扩展字段,且不需要额外处理索引对齐问题。
#### 添加新行
向 `DataFrame` 添加新行通常使用 `loc` 或 `append()` 方法(注意:`append()` 已被弃用,推荐使用 `concat()`)。
##### 使用 `loc` 添加单行
可以使用 `loc` 指定新行的索引位置并赋值:
```python
# 添加一行新数据
df.loc[3] = ['David', 40, 'M']
print(df)
```
输出结果为:
```
name age gender
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
```
##### 使用 `pd.concat()` 添加多行
如果需要一次性添加多个行,推荐使用 `pd.concat()` 方法,它支持将多个 `DataFrame` 或字典形式的数据合并到一起:
```python
# 准备新数据
new_data = pd.DataFrame({
'name': ['Eva', 'Frank'],
'age': [28, 42],
'gender': ['F', 'M']
})
# 合并新数据
df = pd.concat([df, new_data], ignore_index=True)
print(df)
```
输出结果为:
```
name age gender
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
4 Eva 28 F
5 Frank 42 M
```
其中 `ignore_index=True` 表示重新生成连续的整数索引。
---
### 注意事项
- 在添加列时,确保新列的数据长度与 `DataFrame` 的行数一致,否则会引发错误。
- 若使用 `loc` 添加行时索引已存在,则会覆盖原有数据。
- 使用 `pd.concat()` 时建议设置 `ignore_index=True` 以避免索引重复问题。
---
阅读全文
相关推荐












