Python 创建新列并与二进制值进行转换

Python 创建新列并与二进制值进行转换,python,pandas,Python,Pandas,我有一个包含两列的Dataframe,PORT1和PORT2,我试图将每列转换为二进制值,并使用一些规则计算一个新值 例如: PORT1 = 16 PORT2=1 首先计算端口1+1=17和端口2-1=0的二进制值,我必须使用len og八个整数: 00010001和00000000 然后将该数字转换为整数:01000010001000000000000000000000 我的最后一栏是11093408 我试着这么做,但它说它不能像整数一样解释一个序列 DF['new_column'] = i

我有一个包含两列的Dataframe,PORT1和PORT2,我试图将每列转换为二进制值,并使用一些规则计算一个新值

例如:

PORT1 = 16
PORT2=1
  • 首先计算端口1+1=17和端口2-1=0的二进制值,我必须使用len og八个整数: 0001000100000000
  • 然后将该数字转换为整数:01000010001000000000000000000000
  • 我的最后一栏是11093408

    我试着这么做,但它说它不能像整数一样解释一个序列

    DF['new_column'] = int('010'+bin(DF['PORT1']+1)[2:].zfill(8)+'0000'+bin(DF['PORT2']-1)[2:].zfill(8)+'000000000',2)
    

    您的解决方案还可以,但您需要使用
    apply
    功能:

    DF['new_column'] = DF.apply(lambda row: int('010'+bin(row['PORT1']+1)[2:].zfill(8)+'0000'+bin(row['PORT2']-1)[2:].zfill(8)+'000000000',2), axis= 1)
    
    输出:

       PORT1    PORT2   new_column
    0   16      1       1109393408