把用字典创的dataframe放入for循环中写入数据会被覆盖吗
时间: 2024-03-17 17:47:10 浏览: 60
如果在for循环中多次写入同一个DataFrame,那么默认情况下会覆盖之前的数据。如果想要将每次循环得到的数据都保存下来,需要在每次循环中创建一个新的DataFrame,或者将每次循环得到的数据追加到一个已有的DataFrame中。
以下是两种解决方案:
1.每次循环中创建一个新的DataFrame:
```python
import pandas as pd
for i in range(10):
data = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data)
# 对df进行操作,例如添加新列、筛选等
df.to_csv('data{}.csv'.format(i), index=False) # 将df保存到csv文件中
```
在每次循环中都创建一个新的DataFrame,保证了每次循环得到的数据都不会被覆盖。
2.将每次循环得到的数据追加到一个已有的DataFrame中:
```python
import pandas as pd
df = pd.DataFrame(columns=['col1', 'col2']) # 创建一个空的DataFrame
for i in range(10):
data = {'col1': [1, 2], 'col2': [3, 4]}
new_df = pd.DataFrame(data)
# 对new_df进行操作,例如添加新列、筛选等
df = df.append(new_df, ignore_index=True) # 将new_df追加到df中
df.to_csv('data.csv', index=False) # 将df保存到csv文件中
```
在每次循环中,将得到的新数据追加到已有的DataFrame中,保证了之前的数据不会被覆盖。最后,将整个DataFrame保存到csv文件中。