Python 创建新列并与二进制值进行转换
我有一个包含两列的Dataframe,PORT1和PORT2,我试图将每列转换为二进制值,并使用一些规则计算一个新值 例如: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
PORT1 = 16
PORT2=1
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