我有一张桌子看起来是
0 1
0 2760023 XXXXXXXXYYYY111
1 2760024 XXXXXXXXYYYY112
2 2760042 XXXXXXXXYYYY113
3 2760011 XXXXXXXXYYYY114
4 2760041 XXXXXXXXYYYY115
5 2760012 XXXXXXXXYYYY116
6 2760033 XXXXXXXXYYYY117
没有标题。我需要创建一个简单的字典:
dict = {2760023:XXXXXXXXYYYY111,
2760024:XXXXXXXXYYYY112... etc.}
我阅读了很多关于SO和文档的文章,但是对我来说结果是错误的...
因为我使用to_dict()
(无论使用什么参数),就像有人在这里描述的那样:
26716616 /将熊猫数据框转换为词典
我得到了一个不简单的字典,但是:
{0: {0: 2760023,
1: 2760024,
2: 2760042,
3: 2760011,
4: 2760041,
5: 2760012,
6: 2760033},
1: {0: 'XXXXXXXXYYYY111',
1: 'XXXXXXXXYYYY112',
2: 'XXXXXXXXYYYY113',
3: 'XXXXXXXXYYYY114',
4: 'XXXXXXXXYYYY115',
5: 'XXXXXXXXYYYY116',
6: 'XXXXXXXXYYYY117'}}
所以它有点在列表中? 有人可以告诉我我做错了什么吗?
P.S。表具有data.frame类型
答案 0 :(得分:1)
对于to_dict
请勿使用任何参数:
>>> df.set_index('0').to_dict()['1']
{2760023: 'XXXXXXXXYYYY111', 2760024: 'XXXXXXXXYYYY112', 2760042: 'XXXXXXXXYYYY113', 2760011: 'XXXXXXXXYYYY114', 2760041: 'XXXXXXXXYYYY115', 2760012: 'XXXXXXXXYYYY116', 2760033: 'XXXXXXXXYYYY117'}
>>>
答案 1 :(得分:1)
如果只有2列,您也可以这样做:
removeImage (imageKey, streamId) {
console.log(streamId);
streamIds.push(streamId); // insert the item to array
}
dict(df.values)
答案 2 :(得分:1)
还有其他方法:
{row[0]:row[1] for idx, row in df.iterrows()}
随着时间的推移,我们提供以下所有解决方案:
In [6]: %timeit {row[0]:row[1] for idx, row in df.iterrows()}
629 µs ± 56.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [7]: %timeit dict(df.values)
44.1 µs ± 2.78 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
In [8]: %timeit df.set_index('0').to_dict()['1']
347 µs ± 18.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)