一条一行的Dataframe中部分值变更了,需要记录变更的列的值
时间: 2024-10-18 13:03:36 浏览: 23
根据DataFrame某一列的值来选择具体的某一行方法
5星 · 资源好评率100%
如果你想要跟踪DataFrame中某行特定列值的变化,可以采取以下步骤:
1. **初始状态保存**:在进行数据修改之前,先获取并记录原始DataFrame的拷贝,特别是你想关注的那一行及对应列的原始值。
```python
original_df = df.copy()
```
2. **数据修改**:对DataFrame进行修改,比如替换某个行的某个或所有列的值。
```python
df.loc[row_index, ['column1', 'column2']] = new_values
```
这里 `row_index` 是你要关注的行索引,`new_values` 是新的列值列表。
3. **差异比较**:修改后,你可以再次访问这些列的值,与原始值对比,找出变化。
```python
modified_values = df.loc[row_index, ['column1', 'column2']]
changes = original_df.loc[row_index, ['column1', 'column2']] != modified_values
```
`changes` 就是一个布尔型的Series,显示了每一项是否发生了改变。
4. **记录差异**:将`changes` Series与原数据一起存储,例如添加一个新的DataFrame或字典,记录改动的位置和新旧值。
```python
change_log = pd.DataFrame({'Original': original_df.iloc[row_index], 'Modified': df.iloc[row_index]}, index=[row_index])
```
阅读全文