将python中的数据格式转换为ascii

将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 |

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     |
| 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数据框架中,有没有简单有效的方法来完成上述步骤,而不是一步一步地进行
  • 简单整数divmod
  • apply()
  • 塔吉德 价值 日期时间 质量 0 T0 服务提供商 05-03-2021 14:11:53.087 192 1. T1 04 05-03-2021 14:14:25.787 192 2. T2 跳频 05-03-2021 14:16:52.687 192 3. T0 跳频 05-03-2021 14:19:14.470 192 4. T1 跳频 05-03-2021 14:21:31.623 192 5. T2 服务提供商 05-03-2021 14:23:50.220 192 6. T0 服务提供商 05-03-2021 14:26:13.747 192 7. T1 跳频 05-03-2021 14:28:29.817 192 8. T2 跳频 05-03-2021 14:31:03.603 192
    • 简单整数divmod
    • apply()
    塔吉德 价值 日期时间 质量 0 T0 服务提供商 05-03-2021 14:11:53.087 192 1. T1 04 05-03-2021 14:14:25.787 192 2. T2 跳频 05-03-2021 14:16:52.687 192 3. T0 跳频 05-03-2021 14:19:14.470 192 4. T1 跳频 05-03-2021 14:21:31.623 192 5. T2 服务提供商 05-03-2021 14:23:50.220 192 6. T0 服务提供商 05-03-2021 14:26:13.747 192 7. T1 跳频 05-03-2021 14:28:29.817 192 8. T2 跳频 05-03-2021 14:31:03.603 192
    您可以使用
    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)