将布尔值 [True, False, False...] 的 SEQUENCE 更改为位串序列
Change SEQUENCE of boolean values [True, False, False...] to bit string sequence
问题 1
我有一个数据框,它改编自我在文本文件上使用霍夫曼算法后制作的字典。我将我的字典转换为数据框,但它将我的位数组值更改为 True 和 False,我想将它们保留为 1'a 和 0'。
这是我的字典的一个片段:
Huffman Dictionary
{',': bitarray('0000'), 'k': bitarray('0001000'), '-': bitarray('000100100'), '?': bitarray('000100101'), 'A': bitarray('000100110')}
这是我的数据框的片段:
Huffman Data Frame
character bitString
0 , [False, False, False, False]
1 k [False, False, False, True, False, False, False]
2 - [False, False, False, True, False, False, True...
3 ? [False, False, False, True, False, False, True...
4 A [False, False, False, True, False, False, True...
这是我开发的一些代码:
huffmanDictionary = {a[0]:bitarray(str(a[1])) for a in huffmanList}
print("\n Huffman Dictionary \n")
print(huffmanDictionary, "\n")
encodedText = bitarray()
encodedText.encode(huffmanDictionary, textFile)
print("\n Encoded text \n")
print(encodedText)
print("\n Length of encoded text: ", len(encodedText), "\n")
# making data frame to put the dictionary in for easier readability
columnNames = ['character', 'bitString']
huffDataframe = pd.DataFrame(list(huffmanDictionary.items()), columns = columnNames)
非常感谢任何帮助!!谢谢!
问题二
也不确定是否可行,但是一旦变回 1 和 0,是否可以删除 [] 以及数据帧的位串列中的逗号?
是的,@Charles Duffy 的意思是声明你的字典如下:
huffmanDictionary = {a[0]:bitarray(str(''.join(('1' if v else '0') for v in a[1]))) for a in huffmanList}
创建数据框后,您也可以这样做:
def bool_to_bit(s):
r = ''
for i in s:
if i:
r += '1'
else:
r += '0'
return r
df['bitString'].apply(bool_to_bit)
问题 1
我有一个数据框,它改编自我在文本文件上使用霍夫曼算法后制作的字典。我将我的字典转换为数据框,但它将我的位数组值更改为 True 和 False,我想将它们保留为 1'a 和 0'。
这是我的字典的一个片段:
Huffman Dictionary
{',': bitarray('0000'), 'k': bitarray('0001000'), '-': bitarray('000100100'), '?': bitarray('000100101'), 'A': bitarray('000100110')}
这是我的数据框的片段:
Huffman Data Frame
character bitString
0 , [False, False, False, False]
1 k [False, False, False, True, False, False, False]
2 - [False, False, False, True, False, False, True...
3 ? [False, False, False, True, False, False, True...
4 A [False, False, False, True, False, False, True...
这是我开发的一些代码:
huffmanDictionary = {a[0]:bitarray(str(a[1])) for a in huffmanList}
print("\n Huffman Dictionary \n")
print(huffmanDictionary, "\n")
encodedText = bitarray()
encodedText.encode(huffmanDictionary, textFile)
print("\n Encoded text \n")
print(encodedText)
print("\n Length of encoded text: ", len(encodedText), "\n")
# making data frame to put the dictionary in for easier readability
columnNames = ['character', 'bitString']
huffDataframe = pd.DataFrame(list(huffmanDictionary.items()), columns = columnNames)
非常感谢任何帮助!!谢谢!
问题二
也不确定是否可行,但是一旦变回 1 和 0,是否可以删除 [] 以及数据帧的位串列中的逗号?
是的,@Charles Duffy 的意思是声明你的字典如下:
huffmanDictionary = {a[0]:bitarray(str(''.join(('1' if v else '0') for v in a[1]))) for a in huffmanList}
创建数据框后,您也可以这样做:
def bool_to_bit(s):
r = ''
for i in s:
if i:
r += '1'
else:
r += '0'
return r
df['bitString'].apply(bool_to_bit)