第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pandas df 與 groupby 一起聽寫

pandas df 與 groupby 一起聽寫

天涯盡頭無女友 2023-10-31 17:11:29
我有這個 df :line stop1    1_a 1    1_b 1    1_c2    2_a2    2_c我想創(chuàng)建以下字典:d={1 : {"stops" : "1_a","1_b","1_c"}, 2 : {"stops" : "2_a","2_b","2_c"}}有人知道如何用to_dict方法做到這一點(diǎn)嗎?謝謝 !
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊

DataFrame.groupby您可以創(chuàng)建由with?apply、 thenSeries.to_frame和 last列表填充的嵌套字典DataFrame.to_dict

d = df.groupby('line')['stop'].apply(list).to_frame().to_dict('index')

print (d)

{1: {'stop': ['1_a', '1_b', '1_c']}, 2: {'stop': ['2_a', '2_c']}}

如果需要通過某些分隔符連接值,例如,:


d1 = df.groupby('line')['stop'].apply(','.join).to_frame().to_dict('index')

print (d1)

{1: {'stop': '1_a,1_b,1_c'}, 2: {'stop': '2_a,2_c'}}

編輯:


GroupBy.agg帶有和 省略的多列的解決方案to_frame()


print (df)


? ?line stop? lat? lon

0? ? ?1? 1_a? ? 2? ? 2

1? ? ?1? 1_b? ? 3? ? 1

2? ? ?1? 1_c? ? 4? ? 3

3? ? ?2? 2_a? ? 5? ? 6

4? ? ?2? 2_c? ? 6? ? 6


d = df.groupby('line')[['stop','lat','lon']].agg(list).to_dict('index')

print (d)

{1: {'stop': ['1_a', '1_b', '1_c'], 'lat': [2, 3, 4], 'lon': [2, 1, 3]},

?2: {'stop': ['2_a', '2_c'], 'lat': [5, 6], 'lon': [6, 6]}}


查看完整回答
反對 回復(fù) 2023-10-31
?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗 獲得超3個贊

您可以避免該to_dict部分并迭代分組以獲取字典,因為您沒有進(jìn)行任何計算:


{key: {"stops": ",".join(value.stop.array)}

 for key, value in df.groupby("line")}



{1: {'stops': '1_a,1_b,1_c'}, 2: {'stops': '2_a,2_c'}}

或者您可以將子值保留為列表:


{key: {"stops": list(value.stop.array)} 

 for key, value in df.groupby("line")}


{1: {'stops': ['1_a', '1_b', '1_c']}, 2: {'stops': ['2_a', '2_c']}}


查看完整回答
反對 回復(fù) 2023-10-31
  • 2 回答
  • 0 關(guān)注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號