【发布时间】:2019-10-25 21:03:27
【问题描述】:
问题 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)
非常感谢任何和所有帮助!谢谢!
问题 2
也不确定它是否可能,但是一旦改回1和0,是否可以删除[]以及数据帧的位串列中的逗号?
【问题讨论】:
-
显而易见(天真的?)答案是
bitarray(str(''.join(('1' if v else '0') for v in seq))) -
对不起,我不太确定我是否遵循,你的意思是用上面的代码替换我原来在 huffmanDictionary 中的 bitarray 吗? @CharlesDuffy
-
不——以上是严格针对标题中提出的问题,而不是看下面的上下文。如果您真正的问题是关于更改 pandas 对数据框进行字符串化的方式,那不是我可以谈论的问题。
标签: python pandas bit huffman-code