簡體   English   中英

Pandas/Python:根據另一列中的值將列的值存儲到列表中

[英]Pandas/Python: Store values of columns into list based on value in another column

我有以下問題:

我想將 dataframe 中四個不同列 (Age_1 - Age_4) 的值存儲到一個列表中,這取決於第一列“年份”。

年齡_1 2歲 3歲 4歲
2000 18 20 25 56
2000 17 32 24 41
2001年 20 26 24 39

...

所以基本上我想要一個列表,然后只包含每年數據集中的所有年齡,例如第一個列表是 list_2000 = [18,20,25,56,17,32,24,41...] ,第二個將是 list_2001 = [20,26,24,39...]

其實我認為這應該很容易做到,但我的嘗試還沒有成功。 所以任何幫助都是值得贊賞的

IIUC,

df.melt('Year',
        value_vars=['Age_1', 'Age_2', 'Age_3', 'Age_4'])\
.groupby('Year')['value'].agg(list).to_dict()

IIUC,使用底層 numpy 數組和groupby ,然后用tolist ravel為列表:

dic = (
 df.set_index('Year').groupby(level='Year')
   .apply(lambda d: d.to_numpy().ravel().tolist())
   .to_dict()
)

output:

{2000: [18, 20, 25, 56, 17, 32, 24, 41], 2001: [20, 26, 24, 39]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM