**问题:**我从一台机器上收到整数形式的错误代码(每分钟)。这个错误代码代表一个字节串,每一位代表一个特定的错误。为了进行分析,我需要在Pandas中将这些位作为单独的列。我正在努力这样做。
def converttobinary(num, length=3):
binary_string_list = list(format(num, '0{}b'.format(length)))
return [int(digit) for digit in binary_string_list]
df = pd.DataFrame({'errorcode': [1,2,3],
'errorcodelist': ['', '', ''],
'errorcode01': ['', '', ''],
'errorcode02': ['', '', ''],
'errorcode03': ['', '', ''],})
df['errorcodelist'] = df.apply(lambda row : converttobinary(row['errorcode']), axis = 1)
print(df)
结果(目前):
errorcode errorcodelist errorcode01 errorcode02 errorcode03
1 [0, 0, 1]
2 [0, 1, 0]
3 [0, 1, 1]
预期结果:
errorcode errorcodelist errorcode01 errorcode02 errorcode03
1 [0, 0, 1] 1 0 0
2 [0, 1, 0] 0 1 0
3 [0, 1, 1] 0 1 1
有没有人有一个想法,如何得到预期的结果?
1条答案
按热度按时间mklgxw1f1#
您可以使用另一个apply调用来提取列表的元素:
或者,您可以在创建 Dataframe 期间填充其他列: