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

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

如何解决编辑现有列中的数据,并使用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 举报,一经查实,本站将立刻删除。