写一段python代码: 查询excel中是否存在某数据,存在则覆盖,不存在则添加。
时间: 2023-05-26 10:05:41 浏览: 96
以下是示范代码:
```python
import pandas as pd
filename = 'example.xlsx' # 假设数据保存在 example.xlsx 文件中
data_to_add = ['foo', 42] # 要添加或覆盖的数据
# 读取数据
try:
df = pd.read_excel(filename)
except FileNotFoundError:
df = pd.DataFrame(columns=['header1', 'header2'])
# 查找是否存在旧数据
idx = (df['header1'] == data_to_add[0])
# 添加或覆盖数据
if idx.any():
df.loc[idx, 'header2'] = data_to_add[1]
else:
new_row = pd.DataFrame([data_to_add], columns=['header1', 'header2'])
df = df.append(new_row, ignore_index=True)
# 保存数据
df.to_excel(filename, index=False)
```
这个示范代码假设数据已经按照某个格式保存在一个名为`example.xlsx`的文件中。我们首先尝试读取这个文件,如果文件不存在就创建一个空的DataFrame。然后,用`idx`查找`df`中是否存在`header1`等于`data_to_add[0]`的数据行。如果这样的行存在,我们就把这些行的`header2`列覆盖为`data_to_add[1]`;否则,我们就把`data_to_add`作为新行添加到`df`的结尾。最后,我们把修改后的`df`保存回文件。注意,这个示范代码假设`example.xlsx`文件中的表格头为`header1`和`header2`,因此我们特意指定了DataFrame的`columns`参数。在实际应用中,你可能需要把上述代码适当修改以满足具体需求。
阅读全文