微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将数据帧中的每一行乘以csv文件中的值

如何解决如何将数据帧中的每一行乘以csv文件中的值

这是我的 csv 文件 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:无法使用长度与值不同的切片索引器进行设置”。

解决方法

您的 AngleConcFactorTorqueConvFactor 在您的代码中保持为 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 举报,一经查实,本站将立刻删除。