Pandas/Python:根据另一列中的值将列的值存储到列表中



我有以下问题:

我想将数据帧中四个不同列(Age_1-Age_4(的值存储到一个列表中,该列表取决于第一列"Year"。

Age_241
年份 Age_1Age_3Age_4
2000 18 20 25 56
2000 17 32 24
2001 20 26 24 39

IIUC,使用底层numpy数组和groupby,然后用ravel压平数据,并用tolist:转换为列表

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

输出:

{2000: [18, 20, 25, 56, 17, 32, 24, 41], 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()

相关内容

  • 没有找到相关文章

最新更新