gpt4 book ai didi

python - 我如何使用列表理解创建这个嵌套列表?

转载 作者:行者123 更新时间:2023-12-02 16:06:48 26 4
gpt4 key购买 nike

每次我尝试使用列表推导式创建嵌套列表时,结果都非常令人头疼,或者结果不正确。我有一个由四个变量组成的转置数据框,我正在使用它,每个变量有 9 列。例如:

Date0, Date1, Date2, Date3 ... Date 9
GMV0, GMV1, GMV2, GMV3 .... GMV9
Revenue0, Revenue1, Revenue2, Revenue3 .... Revenue9

我正在尝试为每一列创建一个嵌套列表。想要的列表如下:

[[Date0, GMV0, Revenue0], [Date1, GMV1, Revenue1], [Date2, GMV2, Revenue2] ... [Date9, GMV9, Revenue9]]

我目前可以使用

创建所需的列表
date=[col for col in test.columns if 'Date' in col]
gmv=[col for col in test.columns if 'GMV' in col]
rev=[col for col in test.columns if 'Gross Revenue' in col]

vars=[[Date[i], gmv[i], rev[i]] for i in range(len(Date))]

但这是非常低效的,我很肯定这是一个单行代码。

有人可以帮助我理解正确的列表(或者可能是其他一些特定于转置数据的方法)并帮助我解决这个问题吗?

最佳答案

你可以使用to_dict:

>>> df
0 1 2 3 4
0 Date0 Date1 Date2 Date3 Date9
1 GMV0 GMV1 GMV2 GMV3 GMV9
2 Revenue0 Revenue1 Revenue2 Revenue3 Revenue9

>>> list(df.to_dict(orient='list').values())

[['Date0', 'GMV0', 'Revenue0'],
['Date1', 'GMV1', 'Revenue1'],
['Date2', 'GMV2', 'Revenue2'],
['Date3', 'GMV3', 'Revenue3'],
['Date9', 'GMV9', 'Revenue9']]

更新

>>> df
Date0 Date1 Date2 Date3 GMV0 GMV1 GMV2 GMV3 Revenue0 Revenue1 Revenue2 Revenue3
0 A B C D E F G H I J K L


>>> [list(t.columns) for _, t in df.groupby(df.columns.str.extract(r'(\d+)', expand=False), axis=1)]

[['Date0', 'GMV0', 'Revenue0'],
['Date1', 'GMV1', 'Revenue1'],
['Date2', 'GMV2', 'Revenue2'],
['Date3', 'GMV3', 'Revenue3']]

关于python - 我如何使用列表理解创建这个嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69224489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com