python在函数外部定义个空的Dataframe,每次函数遍历之后将数值添加到空的Dataframe中,为什么总是被覆盖
时间: 2024-02-03 08:11:20 浏览: 68
Python解析树及树的遍历
如果你在函数外定义了一个空的 DataFrame,如下所示:
```python
import pandas as pd
df = pd.DataFrame(columns=['col1', 'col2'])
```
然后在函数中追加数据:
```python
def add_data(x, y):
global df
df = df.append({'col1': x, 'col2': y}, ignore_index=True)
```
每次调用 `add_data()` 函数时,数据都会被添加到 `df` 中。但是,如果你调用了多次 `add_data()` 函数,你会发现 `df` 中只保留了最后一次追加的数据,之前的数据都被覆盖了。这是因为每次调用 `add_data()` 函数时,`df` 都被重新赋值为空的 DataFrame,然后再添加数据。
为了避免这种情况,你可以将 `df` 定义为全局变量,并在函数中使用 `global` 关键字来引用它。这样,`df` 就不会被重新赋值为空的 DataFrame。
例如:
```python
import pandas as pd
df = pd.DataFrame(columns=['col1', 'col2'])
def add_data(x, y):
global df
df = df.append({'col1': x, 'col2': y}, ignore_index=True)
```
这样,每次调用 `add_data()` 函数时,数据都会被添加到全局的 `df` 中,并且之前的数据不会被覆盖。
阅读全文