编辑现有列中的数据,并使用pandas添加新列

问题描述

我正在使用16位有符号整数(两个8位-MSB和LSB)中的Python代码从IMU中获取数据,并将其保存在名为“ Data”的csv中。这是一个有关我的数据的示例: Raw Data from IMU

在我的python代码末尾,我希望添加3列并将转换后的原始数据转换为'mg'(例如Acc x [mg],依此类推)。要转换数据,我已经编写了代码

def convertAcc(LSB,MSB):
     MSB_LSB = (MSB*256 + LSB)
     if MSB > 127: # to convert from signed integer to normal integers
          MSB_LSB -= 65536
     Acc_mg = (MSB_LSB/32768)*1000*2**(Acc_Range+1) #Convert to mg (Formula given in Data Sheet)
     return(Acc_mg)

在我的代码结尾,我将此代码写给了我们熊猫:

imu_acc = pd.read_csv('Data.csv',index_col=0)
imu_acc["Acc x [mg]"] = convertAcc(imu_acc["Acc x [LSB]"],imu_acc["Acc x [MSB]"])
imu_acc.to_csv('Data.csv')

因此,代码的熊猫部分似乎工作正常,因为它添加了额外的列,但是我收到错误消息“系列的真值不明确。请使用a.empty,a.bool(),a。 item(),a.any()或a.all()。”关于我的convertAcc()中的“ if MSB> 127:”行

我尝试在最后写这个(所以,如果(MSB> 127).any():),但是我意识到我的转换是错误的,因为它只是跳过了我的if函数,并从所有值中减去了65536。 / p>

有人可以帮我吗? 提前致谢 :) 山姆

编辑:如果在我的代码中已经写了if之后的冒号-复制时出错了

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)