python算出来的数据存到excel后变成了常数,代码如下
我是个小白。。。大神解释的时候麻烦说的具体点{:5_100:}import pandas as pd
import time
start_time = time.time()
df = pd.read_excel('能量计算.xls',sheet_name=0,usecols=('采集时间','总电流(A)','总电压(V)'))
df = df.replace('无效数值','0')
df['总电流(A)'] = df['总电流(A)'].astype(float)
df['总电压(V)'] = df['总电压(V)'].astype(float)
power = df['总电流(A)'] * df['总电压(V)']/1000 #算出功率KW
df['功率'] = power #算的功率存到df里
df['采集时间'] = df['采集时间'].astype('datetime64')
num = len(df['采集时间'])
for i in range(1, num):
df1 = df.iloc
df2 = df.iloc
sjcha = df1 - df2#求时间差
# sjcha = df.iloc.astype('datetime64') - df.iloc.astype('datetime64')
# 这句话也不明白错在哪,为什么不能直接减?
sjcha1 = sjcha.total_seconds()
print (sjcha1) #打印出来的时间差是正确的
eng = power * sjcha1/3600 #计算使用的时间差使用不是上面打印出来的时间差
df['时间差'] = sjcha1#存到df中发现这个时间差变成了常数33
df['能量'] = eng
df.to_excel('chenjie.xls')
end_time = time.time()
print('程序运行的时间', (end_time-start_time))
自己顶下,求大神早日出现 放点数据,或者上运行结果图片 疾风怪盗 发表于 2020-7-30 17:20
放点数据,或者上运行结果图片
新鱼友,传不了照片。。。。 爱学习的老人家 发表于 2020-7-31 13:12
新鱼友,传不了照片。。。。
程序跑的结果是对的,就是用print函数打印sjcha出来结果是对的,但是sjcha那一列写入到excel里变成了常数33 是不是单元格属性的问题?你输出的时候看下是什么类型,数值型的类型,可能就会变化,建议还是全变成str再输出,然后单元格也格式化成文本
之前我输出有身份证号的数据,也是会出现问题 用下面这个代码把表格变成文本格式,写在to_excel下面,sjcha在to_excel前也astype(str)
def Set_excel_style(file_name):#设置表格为文本格式
wb = load_workbook(f'{file_name}')# 打开文件
ws = wb['Sheet1']# 打开表格
for row in ws.rows:# 获取所有行
for cell in row:# 获取所有行中的每一个单元格
cell.font = Font(name=u'微软雅黑', size=11)# 设置字体
cell.border = Border(left=Side(border_style="thin", color='000000'),
right=Side(border_style="thin", color='000000'),
top=Side(border_style="thin", color='000000'),
bottom=Side(border_style="thin", color='000000'))# 设置边框格式
cell.alignment = Alignment(horizontal='center')# 设置居中
cell.number_format = '@'# 设置为文本格式
wb.save(f'{file_name}')# 保存文件
页:
[1]