DataFrame 向指定列名的第n行添加数据
时间: 2025-01-11 20:20:55 浏览: 48
### 向 pandas DataFrame 的指定列特定行插入数据
要在 pandas DataFrame 中向指定列的特定行插入数据,可以通过直接索引访问该位置并赋值来实现。对于更复杂的操作或批量更新,则可能需要构建一个新的 Series 或者 DataFrame 并通过 `pd.concat` 函数进行拼接。
#### 单元格级别的数据插入
如果只是简单地给定行列坐标(即行号和列名),可以直接利用 `.at[]`, `.iat[]`, `.loc[]` 或 `.iloc[]` 方法来进行单个单元格的数据填充:
```python
import pandas as pd
# 创建示例 DataFrame
data = {'name': ['Tom', 'Nick', 'Krish', 'Jack'],
'age': [20, 21, 19, 18]}
df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
# 修改第二行(name='Nick')对应 age 列的值为 30
df.at[df.index[1], 'age'] = 30
print("\n修改后的 DataFrame:")
print(df)
```
上述代码展示了如何定位到具体的一行一列,并为其赋予新值[^1]。
#### 使用辅助函数处理多处或多批次插入
当涉及到多个不同位置的数据插入时,建议先准备好待插入的数据集合,再一次性完成写入动作。这不仅提高了效率也减少了中间状态带来的不确定性。
例如,在同一时刻对多个选定行执行相同的操作:
```python
def update_multiple_rows(df, column_name, row_indices, new_values):
"""批量更新指定列下某些行的数据"""
for idx, value in zip(row_indices, new_values):
df.at[idx, column_name] = value
return df
row_to_update = [0, 2] # 要更新的第一行和第三行
new_ages = [25, 27]
updated_df = update_multiple_rows(df.copy(), 'age', row_to_update, new_ages)
print(updated_df)
```
这段脚本定义了一个名为 `update_multiple_rows()` 的帮助函数,它接受原 DataFrame、目标列名称、需变更记录所在的索引列表以及相应的新数值作为参数,最终返回经过调整后的新副本[^4]。
阅读全文
相关推荐



















