将布尔值的序列[真、假、假…]更改为位字符串序列

2024-06-06 04:36:21 发布

您现在位置:Python中文网/ 问答频道 /正文

问题1

我有一个数据帧,我改编自一本字典,我用哈夫曼算法在一个文本文件。我将字典转换为数据帧,但它将我的位数组值更改为True和False,我希望将它们保留为1'a和0's

这是我的字典的一个片段:

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)

非常感谢您的帮助!!谢谢!你知道吗

问题2

也不确定是否可能,但一旦变回1和0,是否可以删除[]以及数据帧的位字符串列中的逗号?你知道吗


Tags: 数据textinfalsetruefordictionary字典
1条回答
网友
1楼 · 发布于 2024-06-06 04:36:21

是的,@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)

相关问题 更多 >