imed-code

imed-code

Dear all,

I’m trying to use the new Library Explorer DataFrame as we have for Pandas (python) loading rows and columns arrays.

I have an output parsing HTML table and creating an array of columns and rows.

 def transform_request(body) do
    columns =
      body
      |> Floki.parse_document!()
      |> Floki.find("td.dxgvHeader_DevEx")
      |> Floki.find("tr")
      |> Enum.map(fn {"tr", [],
                      [
                        {"td", [{"style", "font-size:10pt;font-weight:normal;"}], [topic]},
                        {"td", [{"style", "width:1px;text-align:right;"}], [_topic_span]}
                      ]} ->
                        String.downcase(topic)
      end)

    rows =
      body
      |> Floki.parse_document!()
      |> Floki.find("tr.dxgvDataRow_DevEx")
      |> Floki.find("td")
      |> Enum.map(&parse_row/1)

    **DF.new(rows, columns)**

  end

  defp parse_row(
         {"td", [{"class", "dxgv"}, {"align", "right"}, {"style", "font-family:Arial;"}], [topic]}
       ) do
    #%{data: String.trim(topic)}
    String.trim(topic)
  end

  defp parse_row(_), do: ""

How can I load this Explorer DataFrame using columns and rows as an input? By the way, same code in pandas works very well e.g. pd.DataFrame(rows[1:], columns=rows[0])

Showing Posts 1 to 4

al2o3cr

al2o3cr

Can you show an example of the input and output you’re expecting? I don’t understand what’s supposed to happen with rows and columns both just being lists of strings.

imed-code

imed-code OP

Hi!

Sure:

I would expecting as output a json or something like this:

{patient: Sergio, age: 40, gender: M, …}
{patient: Maria, age: 12, gender: F, …}
{patient: João, age: 21, gender: M, …}
{patient: Mirela, age: 52, gender: F, …}

In addiction, it will be an output for REST API.

Thanks.

P.S. Sorry for my English.

NduatiK

NduatiK

Explorer’s accepts a list of maps in it’s DataFrame.new function.

columns = ["patient", "age", "gender"]

rows = [
  ["Sergio", 40, "M"],
  ["Maria", 12, "F"],
  ["João", 21, "M"],
  ["Mirela", 52, "F"]
]

rows
|> Enum.map(fn row ->
  columns
  |> Enum.zip(row)
  |> Enum.into(%{})
end)
|> Explorer.DataFrame.new()
#Explorer.DataFrame<
  Polars[4 x 3]
  age integer [40, 12, 21, 52]
  gender string ["M", "F", "M", "F"]
  patient string ["Sergio", "Maria", "João", "Mirela"]
>

By the way, it sounds like you will be pushing this into a DB and serving it over an API, unless you are using Explorer for other data manipulation, you might want to skip using DataFrames.

imed-code

imed-code OP

You’re right! It worked!

Thank you!

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews