Python 多维数组到dict
我试图将多维数组/数据帧转换为字典,但遇到了一些问题。我将excel文档作为数据框加载,并尝试以这种方式使用它。但是,如果有必要,我愿意使用numpy。不过,我的作业仅限于使用numpy或pandas 我尝试过使用pandasPython 多维数组到dict,python,python-3.x,numpy,dataframe,dictionary,Python,Python 3.x,Numpy,Dataframe,Dictionary,我试图将多维数组/数据帧转换为字典,但遇到了一些问题。我将excel文档作为数据框加载,并尝试以这种方式使用它。但是,如果有必要,我愿意使用numpy。不过,我的作业仅限于使用numpy或pandas 我尝试过使用pandasd.to_dict()方法,但似乎无法确定哪一种方法能带给我预期的结果。不幸的是,我不能使用mapdict或任何软件包 数据如下所示: Type Jan Feb 0 a 1 0 1 b 0 1 2 c 1 1 3 d
d.to_dict()
方法,但似乎无法确定哪一种方法能带给我预期的结果。不幸的是,我不能使用mapdict
或任何软件包
数据如下所示:
Type Jan Feb
0 a 1 0
1 b 0 1
2 c 1 1
3 d 1 0
所需的相应输出将是一个字典,如:
{'A' : ['Jan'], 'B' : ['Feb'], 'C' : ['Jan', 'Feb'], 'D' : ['Jan']}
你能给我们你的输入数据,但我想这是你需要的
df.to_dict(orient= 'index')
如果不是,可以给我们更多的信息 我不想在熊猫身上花太多时间,我不确定这是不是最好的答案,但你可以用compress来理解:
>>> from itertools import compress
>>> import pandas as pd
>>> df = pd.DataFrame(data=[['a',1,0],['b',0,1],['c',1,1],['d',1,0]],columns=['type','jan','feb'])
>>> df.head()
type jan feb
0 a 1 0
1 b 0 1
2 c 1 1
3 d 1 0
>>> months = ['jan','feb']
>>> [{df.loc[key]['type']: list(compress(months, [v for v in df.loc[key, months]]))} for key in df.index]
[{'a': ['jan']}, {'b': ['feb']}, {'c': ['jan', 'feb']}, {'d': ['jan']}]
如果还有额外的月份,你可以将它们添加到
月份
列表中。我想有人编辑了我的帖子来向你展示输入。对不起,我不知道怎么做(第一次在这里发布!)