将python中的数据格式转换为ascii
Allen Bradley PLC的数据格式为“值”列中的5位数字将python中的数据格式转换为ascii,python,pandas,ascii,Python,Pandas,Ascii,Allen Bradley PLC的数据格式为“值”列中的5位数字 | tagid | value | datetime | quality | |-------|-------|-------------------------|---------| | T0 | 21328 | 05-03-2021 14:11:53.087 | 192 | | T1 | 12340 | 05-03-2021 14:14:25.787 | 192 |
| tagid | value | datetime | quality |
|-------|-------|-------------------------|---------|
| T0 | 21328 | 05-03-2021 14:11:53.087 | 192 |
| T1 | 12340 | 05-03-2021 14:14:25.787 | 192 |
| T2 | 17992 | 05-03-2021 14:16:52.687 | 192 |
| T0 | 17992 | 05-03-2021 14:19:14.470 | 192 |
| T1 | 17992 | 05-03-2021 14:21:31.623 | 192 |
| T2 | 21328 | 05-03-2021 14:23:50.220 | 192 |
| T0 | 21328 | 05-03-2021 14:26:13.747 | 192 |
| T1 | 17992 | 05-03-2021 14:28:29.817 | 192 |
| T2 | 17992 | 05-03-2021 14:31:03.603 | 192 |
起初,我无法识别从这个5位数的值中获取所需值的步骤然后在Excel/Python中进行了一些实验后,我执行了以下步骤,得到了正确的期望值
步骤:
第一步。将值除以256并取整(例如17992/256,即70
步骤2.修改相同的值(例如:=Mod(17992256),即72
步骤3.找到等于70的Ascii值,即F
步骤4.找到等于72的Ascii值,即H
步骤5:连接F&H,即FH
因此,17992的期望值为“FH”,12340为“0468”
| tagid | value | datetime | quality |
|-------|-------|-------------------------|---------|
| T0 | FH | 05-03-2021 14:11:53.087 | 192 |
| T1 | 02 | 05-03-2021 14:14:25.787 | 192 |
在python数据框架中,有没有简单有效的方法来完成上述步骤,而不是一步一步地进行
apply()
- 简单整数div和mod
apply()
您可以使用
apply
方法在整个数据帧(或系列)中应用函数
df['value_converted']=df['value']。应用(λx:chr(四舍五入(x/256))+chr(x%256))
您可以使用apply
方法在整个数据帧(或系列)中应用函数
df['value_converted']=df['value']。应用(λx:chr(四舍五入(x/256))+chr(x%256))
谢谢!我可以知道我从PLC获得的“值”列的数据类型吗?仅供理解!我可以知道我从PLC获得的“值”列的数据类型吗?仅供理解
df.value = (df.value//256).apply(chr) + (df.value%256).apply(chr)