循环语句得到数据后保存csv只有最后一条?

循环语句得到数据后保存csv只有最后一条?

 highs=[]

lows=[]

for row in reader:

high=str(row[14])

low=str(row[14])

highs.append(high)

#print(highs)

#print(highs)

#去除重复的电源名称

l1=list(set(highs))

#print(l1)

#names= str(input('请输入配电柜名称:'))

for kWh in l1:

names= kWh

if names in l1:

#print(names)

#print(df[df["Name"].str.contains(names)])

#print(df["power"][df["Name"].str.contains(names)])

#print(names+'最大读数(kW.h):',max(df["Power"][df["Name"].str.contains(names)]))

#print(names+'最小读数(kW.h):',min(df["Power"][df["Name"].str.contains(names)]))

a=max(df["Power"][df["Name"].str.contains(names)])

b=min(df["Power"][df["Name"].str.contains(names)])

Toter=a-b

Toterc=names+'今天总用电量(kW.h):',Toter

#print(Toterc)

#print(names+'今天总用电量(kW.h):',Toter)

c=[names,Toter]

d=[[names,Toter],[22,14]]

#print(c)

name1=['设备名称','电度数']

print(d[0])

test=pd.DataFrame(columns=name1,data=d)

test.to_csv('d:/python/Data/test2.csv',encoding = "gbk")

怎么输出csv只有最后一条记录,哪位高手帮帮我?


回答:

你只有最后一条数据是因为后面增加的数据把前面那一条数据覆盖掉了所以会只有最后一条
to_csv()方法mode默认为w,
而 w 模式 会清空文件再重新写入新的数据
加上mode='a',便可以追加写入数据。
a 模式 为追加写入数据就不会清空前面的数据,而是会在原文件的基础上增加新的数据

test.to_csv('d:/python/Data/test2.csv',encoding = "gbk")

改为

test.to_csv('d:/python/Data/test2.csv', mode='a', encoding = "gbk")

问题就解决了

以上是 循环语句得到数据后保存csv只有最后一条? 的全部内容, 来源链接: utcz.com/a/162334.html

回到顶部