【发布时间】:2021-06-17 19:01:35
【问题描述】:
不知道还能怎么问这个问题,但这只是我需要在一个非常大的数据集上执行的一种非常特殊的转换类型,因此它必须尽可能高效。
假设我的数据框如下所示:
| id | 1/01/2001 | 1/02/2001 | 1/03/2001 |
|---|---|---|---|
| 1 | 629 | 138 | 240 |
| 2 | 249 | 480 | 104 |
| 3 | 264 | 246 | 244 |
| 4 | 259 | 842 | 278 |
所以我在列中随时间跟踪每个 id 的值,但我需要将其转换为字典数组。通常我可以只使用df.to_dict('records'),因为由于形状的原因,我必须变得更聪明一些。我希望字典数组看起来像这样:
[
{
'id': 1,
'1/01/2001': 629
},
{
'id': 1,
'1/02/2001': 138
},
{
'id': 1,
'1/03/2001': 240
},
{
'id': 2,
'1/01/2001': 249
},
{
'id': 2,
'1/02/2001': 480
},
{
'id': 2,
'1/03/2001': 104
},
...
]
等等……
有没有不使用复杂 for 循环的简单方法?
【问题讨论】:
-
对不起,我很困惑。这不仅仅是 df.to_dict(records)?
-
@ifly6 'records make
[{'id': 1, '1/01/2001': 629, '1/02/2001': 138, '1/03/2001': 240}, {'id': 2, '1/01/2001': 249, '1/02/2001': 480, '1/03/2001': 104}by rows, he want by cell -
@ifly6 如果数据框的列是
id, date, value,它将是df.to_dict('records'),但值在列中被跟踪,所以有点奇怪
标签: python pandas data-structures