df熊猫中的AB到A和B分开

时间:2020-04-14 15:55:22

标签: python pandas

我有一个df,其中某些数据放置在某些字节中。我有一个问题,在框架内有两个位保留给切换功能,这对我来说并不重要,但会影响任务的最终结果。

字节帧如下:

Start bit  0 1 2 3 4 5 6 7 
    0      A A A A A A A A 
    8      A A 
   16      B B B B B B B B   
   24      B B         C C

C represents the toggle

我的df看起来像这样:

A   A   B   B
BA  00  11  02
BA  00  11  02
BA  00  11  42
BA  00  11  42
BA  00  11  82
BA  00  11  82
BA  00  11  C2
BA  00  11  C2
BA  00  11  02
BA  00  11  02

我可以从B看到第二个字节的第一部分正在循环,这意味着第二个数字是切换位置。我猜还是我错了?之后,该数字(2)在我的df中更改为1,然后更改为0。

有没有一种方法可以转换,分隔或消除第二位数字,或者只能采用第一位数字(本例为0)。例如。 02-> 0和2只是取0。之后的df是不同于0的数字,但无论如何0,4,8和C都是连续的,并且2也后来更改为1,然后为0。:)

1 个答案:

答案 0 :(得分:0)

对于那些寻求答案的人,我用枕头咨询了一下,我们同意尝试以下切实可行的方法:

因此,将这些字节放在一起后:

df['A'] = df.iloc[:,1] + '' + df.iloc[:,0]    #Dominant byte is the second position
df['B'] = df.iloc[:,3] + '' + df.iloc[:,2]

输出:

  A       B
00BA    0211  
00BA    0211  
00BA    4211  
00BA    4211  
00BA    8211  
00BA    8211  
00BA    C211  
00BA    C211  
00BA    0211  
00BA    0211  

我做了以下事情:

df['B'] = df['B'].str[1:] #Only take the last three digits of the array

输出:

 A       B
00BA    211  
00BA    211  
00BA    211  
00BA    211  
00BA    211  
00BA    211  
00BA    211  
00BA    211  
00BA    211  
00BA    211