AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 78847998
Accepted
Rhys
Rhys
Asked: 2024-08-08 18:54:18 +0800 CST2024-08-08 18:54:18 +0800 CST 2024-08-08 18:54:18 +0800 CST

Listar para DataFrame com cabeçalhos de linha e coluna

  • 772

Preciso converter uma lista (incluindo cabeçalhos) em um Dataframe.

Se eu fizer isso diretamente usando pl.DataFrame(list), os cabeçalhos são criados e tudo é mantido como uma string. Além disso, a tabela é transposta, de forma que o primeiro elemento da lista se torne a primeira coluna do dataframe.

Lista de entrada.

[
    ['Earnings estimate', 'Current qtr. (Jun 2024)', 'Next qtr. (Sep 2024)', 'Current year (2024)', 'Next year (2025)'],
    ['No. of analysts', '13', '11', '26', '26'],
    ['Avg. Estimate', '1.52', '1.62', '6.27', '7.23'],
    ['Low estimate', '1.36', '1.3', '5.02', '5.88'],
    ['High estimate', '1.61', '1.74', '6.66', '8.56'],
    ['Year ago EPS', '1.76', '1.36', '5.74', '6.27'],
]

Resultado esperado.

Resultado Esperado

python
  • 3 3 respostas
  • 67 Views

3 respostas

  • Voted
  1. Best Answer
    jqurious
    2024-08-08T19:10:15+08:002024-08-08T19:10:15+08:00

    Você pode definir explicitamente orient=para evitar a transposição:

    pl.DataFrame(data[1:], orient="row", schema=data[0])
    
    shape: (5, 5)
    ┌───────────────────┬─────────────────────────┬──────────────────────┬─────────────────────┬──────────────────┐
    │ Earnings estimate ┆ Current qtr. (Jun 2024) ┆ Next qtr. (Sep 2024) ┆ Current year (2024) ┆ Next year (2025) │
    │ ---               ┆ ---                     ┆ ---                  ┆ ---                 ┆ ---              │
    │ str               ┆ str                     ┆ str                  ┆ str                 ┆ str              │
    ╞═══════════════════╪═════════════════════════╪══════════════════════╪═════════════════════╪══════════════════╡
    │ No. of analysts   ┆ 13                      ┆ 11                   ┆ 26                  ┆ 26               │
    │ Avg. Estimate     ┆ 1.52                    ┆ 1.62                 ┆ 6.27                ┆ 7.23             │
    │ Low estimate      ┆ 1.36                    ┆ 1.3                  ┆ 5.02                ┆ 5.88             │
    │ High estimate     ┆ 1.61                    ┆ 1.74                 ┆ 6.66                ┆ 8.56             │
    │ Year ago EPS      ┆ 1.76                    ┆ 1.36                 ┆ 5.74                ┆ 6.27             │
    └───────────────────┴─────────────────────────┴──────────────────────┴─────────────────────┴──────────────────┘
    
    • 2
  2. Cameron Riddell
    2024-08-08T23:43:04+08:002024-08-08T23:43:04+08:00

    Para completar, Polars também possui um construtor para dados semelhantes a registros: polars.from_records que você também pode usar aqui.

    import polars as pl
    
    data = [
        ['Earnings estimate',  'Current qtr.',  'Next qtr.'],
        ['No. of analysts',    '13',            '11',      ],
        ['Avg. Estimate',      '1.52',          '1.62',    ],
        ['Low estimate',       '1.36',          '1.3',     ],
        ['High estimate',      '1.61',          '1.74',    ],
        ['Year ago EPS',       '1.76',          '1.36',    ],
    ]
    
    df = pl.from_records(data[1:], schema=data[0])
    print(df)
    # shape: (5, 3)
    # ┌───────────────────┬──────────────┬───────────┐
    # │ Earnings estimate ┆ Current qtr. ┆ Next qtr. │
    # │ ---               ┆ ---          ┆ ---       │
    # │ str               ┆ str          ┆ str       │
    # ╞═══════════════════╪══════════════╪═══════════╡
    # │ No. of analysts   ┆ 13           ┆ 11        │
    # │ Avg. Estimate     ┆ 1.52         ┆ 1.62      │
    # │ Low estimate      ┆ 1.36         ┆ 1.3       │
    # │ High estimate     ┆ 1.61         ┆ 1.74      │
    # │ Year ago EPS      ┆ 1.76         ┆ 1.36      │
    # └───────────────────┴──────────────┴───────────┘
    
    • 2
  3. Roman Pekar
    2024-08-08T19:13:04+08:002024-08-08T19:13:04+08:00

    DataFrameconstrutor tem um parâmetro orient:

    orient : {'col', 'row'}, default Nenhum Se deve interpretar dados bidimensionais como colunas ou linhas. Se Nenhum, a orientação será inferida pela correspondência entre colunas e dimensões de dados. Se isso não produzir resultados conclusivos, a orientação da coluna será usada.

    Portanto, no seu caso, cola orientação é usada, mas você pode configurá-la manualmente para row:

    pl.DataFrame(data[1:], schema=data[0], orient="row")
    
    shape: (5, 5)
    ┌───────────────────┬─────────────────────────┬──────────────────────┬─────────────────────┬──────────────────┐
    │ Earnings estimate ┆ Current qtr. (Jun 2024) ┆ Next qtr. (Sep 2024) ┆ Current year (2024) ┆ Next year (2025) │
    │ ---               ┆ ---                     ┆ ---                  ┆ ---                 ┆ ---              │
    │ str               ┆ str                     ┆ str                  ┆ str                 ┆ str              │
    ╞═══════════════════╪═════════════════════════╪══════════════════════╪═════════════════════╪══════════════════╡
    │ No. of analysts   ┆ 13                      ┆ 11                   ┆ 26                  ┆ 26               │
    │ Avg. Estimate     ┆ 1.52                    ┆ 1.62                 ┆ 6.27                ┆ 7.23             │
    │ Low estimate      ┆ 1.36                    ┆ 1.3                  ┆ 5.02                ┆ 5.88             │
    │ High estimate     ┆ 1.61                    ┆ 1.74                 ┆ 6.66                ┆ 8.56             │
    │ Year ago EPS      ┆ 1.76                    ┆ 1.36                 ┆ 5.74                ┆ 6.27             │
    └───────────────────┴─────────────────────────┴──────────────────────┴─────────────────────┴──────────────────┘
    
    
    • 1

relate perguntas

  • Como divido o loop for em 3 quadros de dados individuais?

  • Como verificar se todas as colunas flutuantes em um Pandas DataFrame são aproximadamente iguais ou próximas

  • Como funciona o "load_dataset", já que não está detectando arquivos de exemplo?

  • Por que a comparação de string pandas.eval() retorna False

  • Python tkinter/ ttkboostrap dateentry não funciona quando no estado somente leitura

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle?

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Quando devo usar um std::inplace_vector em vez de um std::vector?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Martin Hope
    Aleksandr Dubinsky Por que a correspondência de padrões com o switch no InetAddress falha com 'não cobre todos os valores de entrada possíveis'? 2024-12-23 06:56:21 +0800 CST
  • Martin Hope
    Phillip Borge Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle? 2024-12-12 20:46:46 +0800 CST
  • Martin Hope
    Oodini Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores? 2024-12-12 06:27:11 +0800 CST
  • Martin Hope
    sleeptightAnsiC `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso? 2024-11-09 07:18:53 +0800 CST
  • Martin Hope
    The Mad Gamer Quando devo usar um std::inplace_vector em vez de um std::vector? 2024-10-29 23:01:00 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST
  • Martin Hope
    MarkB Por que o GCC gera código que executa condicionalmente uma implementação SIMD? 2024-02-17 06:17:14 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve