如何解决如何将数据帧中的每一行乘以csv文件中的值
我试图取“角度最小值”和“角度最大值”列的平均值,然后将结果数据框中的每一行与单元格 D8 中的“角度转换系数”相乘。同样,我想对“最小扭矩”和“最大扭矩”执行相同的操作(获取平均值,然后将结果数据帧乘以单元格 E8 中的“扭矩转换系数”)。
这是我目前的代码:
import matplotlib.pyplot as plt
from matplotlib.pyplot import show,plot
import numpy as np
from scipy.signal import savgol_filter
import os
def Torque_Analysis(filename):
#Importing CSV Data and Defining 'AngleDF' and 'TorqueDF'
Angle_Data = ['Angle Min','Angle Max']
Torque_Data = ['Torque Min','Torque Max']
AngleCol = ['Angle Conversion Factor']
TorqueCol = ['Torque Conversion Factor']
AngleConvFactor = pd.read_csv(filename,skiprows=6,usecols = AngleCol,nrows = 1,engine='python')
TorqueConvFactor = pd.read_csv(filename,usecols = TorqueCol,engine='python')
AngleDF = pd.read_csv(filename,skiprows=17,usecols=Angle_Data,skipfooter=4,engine='python')
TorqueDF = pd.read_csv(filename,usecols=Torque_Data,engine='python')
#Calculating the average of 'Angle Min','Angle Max'
col = AngleDF.loc[:,'Angle Min':'Angle Max']
AngleDF['Angle Mean'] = col.mean(axis=1)
AngleDFmean= AngleDF['Angle Mean']
#Calculating the average of 'Torque Min','Torque Max'
col = TorqueDF.loc[:,'Torque Min':'Torque Max']
TorqueDF['Torque Mean'] = col.mean(axis=1)
TorqueDFmean= TorqueDF['Torque Mean']
#Multiplying Torque Mean values by Torque conversion factor
TorqueDFmean[:] = TorqueConvFactor * TorqueDFmean
#Multiplying Angle Mean values by Angle conversion factor
AngleDFmean[:] = AngleConvFactor * AngleDFmean
我一直收到错误
“ValueError:无法使用长度与值不同的切片索引器进行设置”。
解决方法
您的 AngleConcFactor
和 TorqueConvFactor
在您的代码中保持为 1x1 数据帧。
只需稍微清理一下您的函数即可满足您的需求:
def Torque_Analysis(filename):
Angle_Data = ['Angle Min','Angle Max']
Torque_Data = ['Torque Min','Torque Max']
AngleCol = ['Angle Conversion Factor']
TorqueCol = ['Torque Conversion Factor']
AngleConvFactor = pd.read_csv(filename,skiprows=6,usecols=AngleCol,nrows=1,engine='python').iat[0,0]
TorqueConvFactor = pd.read_csv(filename,usecols=TorqueCol,0]
AngleDF = pd.read_csv(filename,skiprows=17,usecols=Angle_Data,skipfooter=4,engine='python')
TorqueDF = pd.read_csv(filename,usecols=Torque_Data,engine='python')
AngleDF["Angle Mean"] = AngleDF[["Angle Min","Angle Max"]].mean(axis=1)*AngleConvFactor
TorqueDF["Torque Mean"] = TorqueDF[['Torque Min',"Torque Max"]].mean(axis=1)*TorqueConvFactor
请注意,我已使用 .iat[0,0]
将您的 1x1 DataFrame 转换为标量值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。