2
我有一個數據幀熊貓據幀與dict上多列和值列出
id key
a1 1
a2 1
a3 1
a4 2
a5 2
a6 3
我想創建一個字典,key
機器沒有了,id
列清單
,如:
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
我可以先使用groupby然後做.to_dict嗎?
我有一個數據幀熊貓據幀與dict上多列和值列出
id key
a1 1
a2 1
a3 1
a4 2
a5 2
a6 3
我想創建一個字典,key
機器沒有了,id
列清單
,如:
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
我可以先使用groupby然後做.to_dict嗎?
我相信你需要列出的dict
廣告值 - 使用groupby
+ apply
+ to_dict
:
d = df.groupby('key')['id'].apply(list).to_dict()
print (d)
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: ['a6']}
或者,如果需要list
與標量增加if/else
到apply
:
d = df.groupby('key')['id'].apply(lambda x: list(x) if len(x) > 1 else x.iat[0]).to_dict()
print (d)
{1: ['a1', 'a2', 'a3'], 2: ['a4', 'a5'], 3: 'a6'}
使用字典解析圍繞groupby
迭代器
{n: v.tolist() for n, v in df.groupby('key').id}
這很好,如果我們有一列,但是,如果我們必須從多列中獲取值呢?我遇到過類似的情況。我嘗試過使用這個,但沒有成功。我認爲'地圖'會做到這一點,但不知道!如果你願意,我在這裏發佈了一個問題:https://stackoverflow.com/questions/46623452/map-two-data-frames-to-create-a-dictionary-with-multiple-values-for-a-key -pand –