我有一個包含三列的 DataFrame。我想將此 DataFrame 轉換為 python 串列。
資料框:
name year value
0 val_1 2001 3
1 val_1 2002 3
2 val_2 2001 0
3 val_2 2002 3
4 val_3 2001 3
5 val_3 2002 0
6 val_4 2001 np.nan
串列:
[['val_1', [[2001, 3], [2002, 3]]], ['val_2', [[2001, 0], [2002, 3]]], ['val_3', [[2001, 3], [2002, 0]]], ['val_4', []]]
一次嘗試:
[[k, list(g.values[:, 1:].tolist())] for k, g in df.groupby('value')]
(我很難處理 np.nan)
uj5u.com熱心網友回復:
嘗試:
>>> [[k, v.drop("name",axis=1).dropna().astype('int').to_numpy().tolist()] for k, v in df.groupby('name')]
[['val_1', [[2001, 3], [2002, 3]]],
['val_2', [[2001, 0], [2002, 3]]],
['val_3', [[2001, 3], [2002, 0]]],
['val_4', []]]
uj5u.com熱心網友回復:
另一個版本:
x = [[i, g[g.notna().all(1)].values[:, 1:].tolist()] for i, g in df.groupby("name")]
print(x)
印刷:
[
["val_1", [[2001, 3.0], [2002, 3.0]]],
["val_2", [[2001, 0.0], [2002, 3.0]]],
["val_3", [[2001, 3.0], [2002, 0.0]]],
["val_4", []],
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/469385.html