在循环里持续向csv添加读取到的DataFrame,为什么只输出了最后一次循环的dataframe

import pandas as pd
import numpy as np
data=pd.read_csv('result1.csv',encoding='gbk')

for i in range(0,30):
    if i%3==0:
        data1=np.array(data)
        datas=data1[int(i):int(i+3),]
        datanew=pd.DataFrame(datas)
        datanew.head(4)
        datanew.columns=['','frequency','price','name']
        df=pd.DataFrame(datanew)
        datanew2=df.sort_values(by=('price'))
        datanew2.to_csv('C:/Users/HP/Desktop/python_work/result6.csv',encoding='gbk')
        print(datanew2)
        continue

结果图片

img

img

按你的程序逻辑,你最后写入 csv 时,就是最新的dataframe ,以前的都被覆盖了。
这样改一下, 应该能得到你要结果

import pandas as pd
import numpy as np
data=pd.read_csv('result1.csv',encoding='gbk')

#初始化要写入的数据
data1=np.array(data)
datas=data1[int(0):int(0+3),]
datanew=pd.DataFrame(datas)
datanew.head(4)
datanew.columns=['','frequency','price','name']
df=pd.DataFrame(datanew)
data_save=df.sort_values(by=('price'))

# 追加数据
for i in range(1,30):
    if i%3==0:
        data1=np.array(data)
        datas=data1[int(i):int(i+3),]
        datanew=pd.DataFrame(datas)
        datanew.head(4)
        datanew.columns=['','frequency','price','name']
        df=pd.DataFrame(datanew)
        datanew2=df.sort_values(by=('price'))
        # datanew2.to_csv('C:/Users/HP/Desktop/python_work/result6.csv',encoding='gbk')
        data_save = pd.concat([data_save,datanew2],axis=0,ignore_index=True)
        print(datanew2)
        continue

# 保存数据
data_save.to_csv('C:/Users/HP/Desktop/python_work/result6.csv',encoding='gbk')