Zlo*_*Zlo 4 python dictionary numpy matrix
我有一个列表的字典,例如,
dictionary_test = {'A': ['hello', 'byebye', 'howdy'], 'B': ['bonjour', 'hello', 'ciao'], 'C': ['ciao', 'hello', 'byebye']}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为布尔从属关系矩阵以进行进一步分析.最好是dict keys作为列名,列表项作为行名:
A B C
hello 1 1 1
byebye 1 0 1
howdy 1 0 0
bonjour 0 1 0
ciao 0 1 1
Run Code Online (Sandbox Code Playgroud)
是否可以在Python中进行(最好是我可以将矩阵写入.csv文件)?我想这是我必须要做的事numpy,对吗?
另一个问题是字典的大小是未知的(键的数量和列表中元素的数量都不同).
小智 6
你可以用pandas.这是一个例子.
>>> import pandas as pd
>>> dictionary_test = {'A': ['hello', 'byebye', 'howdy'], 'B': ['bonjour', 'hello', 'ciao'], 'C': ['ciao', 'hello', 'byebye']}
>>> values = list(set([ x for y in dictionary_test.values() for x in y]))
>>> data = {}
>>> for key in dictionary_test.keys():
... data[key] = [ True if value in dictionary_test[key] else False for value in values ]
...
>>> pd.DataFrame(data, index=values)
A B C
ciao False True True
howdy True False False
bonjour False True False
hello True True True
byebye True False True
Run Code Online (Sandbox Code Playgroud)
如果您希望按特定顺序排列.只需手动设置values.