|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我是个小白。。。大神解释的时候麻烦说的具体点
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[i,0]
df2 = df.iloc[i-1,0]
sjcha = df1 - df2 #求时间差
# sjcha = df.iloc[i,0].astype('datetime64') - df.iloc[i-1,0].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))
是不是单元格属性的问题?你输出的时候看下是什么类型,数值型的类型,可能就会变化,建议还是全变成str再输出,然后单元格也格式化成文本
之前我输出有身份证号的数据,也是会出现问题
|
|