如何从python-lis为Pandas指定列名

2024-04-26 00:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有python列表列表,我想将其转换为pandas数据帧。我想创建以下格式的数据帧:

table_id           created     Mb (etc.)
1 NetworkClicks      2018-10-26  0.22
2 NetworkImpressions 2018-10-26  1519.24

(根据下面的列表示例,共6行)

每个列表中都有列名,例如Mb、created、modified、table\u id

列表示例:

^{pr2}$

我试过了 df = pd.DataFrame(ls_all, columns=ls_all[0])

但它给了我这个数据帧:

    (Mb, 928.11)  ...  (Tb, 0.91)
0   (Mb, 928.11)  ...  (Tb, 0.91)
1   (Mb, 800.67)  ...  (Tb, 0.78)
2     (Mb, 2.44)  ...  (Tb, 0.00)
3  (Mb, 1190.52)  ...  (Tb, 1.16)
4     (Mb, 0.22)  ...  (Tb, 0.00)
5  (Mb, 1519.24)  ...  (Tb, 1.48)

Tags: 数据id示例pandas列表格式tableetc
2条回答

我喜欢上面的字典列表,下面是另一种方法:

从列表中获取数据

lists = []

for list in ls_all:
    temp = [x[1] for x in list]
    lists.append(temp)

获取列名

^{pr2}$

加载到数据帧

^{3}$

结果

        Mb     created    modified Rows_Mil                    table_id    Tb
0   928.11  2018-10-25  2019-04-18    4,378          NetworkActiveViews  0.91
1   800.67  2018-10-26  2019-04-18    3,577  NetworkBackfillActiveViews  0.78
2     2.44  2018-10-26  2019-04-18       11       NetworkBackfillClicks  0.00
3  1190.52  2018-10-26  2019-04-18    5,269  NetworkBackfillImpressions  1.16
4     0.22  2018-10-26  2019-04-18        1               NetworkClicks  0.00
5  1519.24  2018-10-26  2019-04-18    7,089          NetworkImpressions  1.48

使用字典列表而不是元组列表。在

list_of_dicts = [dict(x) for x in ls_all]

df = pd.DataFrame(list_of_dicts)

        Mb Rows_Mil    Tb     created    modified                    table_id
0   928.11    4,378  0.91  2018-10-25  2019-04-18          NetworkActiveViews
1   800.67    3,577  0.78  2018-10-26  2019-04-18  NetworkBackfillActiveViews
2     2.44       11  0.00  2018-10-26  2019-04-18       NetworkBackfillClicks
3  1190.52    5,269  1.16  2018-10-26  2019-04-18  NetworkBackfillImpressions
4     0.22        1  0.00  2018-10-26  2019-04-18               NetworkClicks

相关问题 更多 >