'Is there a way to display a pandas Dataframe in KivyMD?

Is there a way to display a pandas DataFrame in KivyMD? I tried putting the dataframe as a KivyMD DataTable but it doesn't work that way.



Solution 1:[1]

You could use the MDDataTable and fill the row with the dataframe. You only need to process the data. Try to define a function to do that:

def get_data_table(dataframe):
    column_data = list(dataframe.columns)
    row_data = dataframe.to_records(index=False)
    return column_data, row_data

Then you can put all into the MDDataTable after setting the size of columns.

import pandas as pd
from kivy.uix.anchorlayout import AnchorLayout
from kivymd.app import MDApp
from kivy.lang.builder import Builder
from kivymd.uix.datatables import MDDataTable
from kivy.metrics import dp

dataframe  = pd.read_csv(filename)
class MyApp(MDApp):
    def build(self):

        layout = AnchorLayout()
        
        
        container = my_root.ids.container
        print(container)
        column_data, row_data = get_data_table(dataframe)
        column_data = [(x, dp(60)) for x in column_data]

        table = MDDataTable(
            column_data = column_data,
            row_data = row_data,
            use_pagination=True
        )
        layout.add_widget(table)
        
        return layout
MyApp().run()

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1