Ошибка таблицы Pandas при попытке получить позиции столбцаPython

Программы на Python
Anonymous
Ошибка таблицы Pandas при попытке получить позиции столбца

Сообщение Anonymous »

это пример моего кода — я использую tkinter с вкладками и таблицей pandas внутри.
когда я пытаюсь вставить данные в ячейку на первой вкладке, я получаю ошибку
`

Код: Выделить всё

import pandas as pd
from pandastable import Table
import tkinter as tk
from tkinter import ttk

class PandasTableApp(tk.Tk):
def __init__(self):
super().__init__()
self.title("PandasTable in Tabs")
self.geometry("800x600")

# Sample DataFrames
data1 = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df1 = pd.DataFrame(data1)
data2 = {'X': [10, 20, 30], 'Y': [40, 50, 60], 'Z': [70, 80, 90]}
df2 = pd.DataFrame(data2)

# Create Tab Control
tab_control = ttk.Notebook(self)

tab1 = ttk.Frame(tab_control)
tab2 = ttk.Frame(tab_control)

tab_control.add(tab1, text='Tab 1')
tab_control.add(tab2, text='Tab 2')

tab_control.pack(expand=1, fill='both')

# Create PandasTable instances
self.table1 = Table(tab1, dataframe=df1)
self.table2 = Table(tab2, dataframe=df2)

self.table1.show()
self.table2.show()

# Bind events for each table
self.table1.bind("", self.handle_return_table1)
self.table2.bind("", self.handle_return_table2)

def handle_return_table1(self, event):
# Custom handler for the Enter key event for table1
self.table1.handle_arrow_keys(event)
return "break"

def handle_return_table2(self, event):
# Custom handler for the Enter key event for table2
self.table2.handle_arrow_keys(event)
return "break"

if __name__ == "__main__":
app = PandasTableApp()
app.mainloop()`
Я получаю вот такую ​​ошибку:
C:\Users\xxxx\AppData\Local\Programs\Python\Python39\lib\tkinter_init _.py:1884: FutureWarning: преобразование массивов dtype объекта в .fillna, .ffill, .bfill устарело и будет изменено в будущей версии. Вместо этого вызовите result.infer_objects(copy=False). Чтобы согласиться на будущее поведение, установите pd.set_option('future.no_silent_downcasting', True)
return self.func(*args)
C:\Users\xxxx\AppData \Local\Programs\Python\Python39\lib\tkinter_init_.py:1884: FutureWarning: преобразование массивов dtype объекта в .fillna, .ffill, .bfill устарело и будет изменено в будущей версии. . Вместо этого вызовите result.infer_objects(copy=False). Чтобы согласиться на будущее поведение, установите pd.set_option('future.no_silent_downcasting', True)
return self.func(*args)
C:\Users\xxxxx\AppData \Local\Programs\Python\Python39\lib\tkinter_init_.py:1884: FutureWarning: преобразование массивов dtype объекта в .fillna, .ffill, .bfill устарело и будет изменено в будущей версии. . Вместо этого вызовите result.infer_objects(copy=False). Чтобы согласиться на будущее поведение, установите pd.set_option('future.no_silent_downcasting', True)
return self.func(*args)
C:\Users\xxxxx\AppData \Local\Programs\Python\Python39\lib\tkinter_init_.py:1884: FutureWarning: Series.getitem, обработка ключей как позиций устарела. В будущей версии целочисленные ключи всегда будут рассматриваться как метки (в соответствии с поведением DataFrame). Чтобы получить доступ к значению по позиции, используйте ser.iloc[pos]
return self.func(*args)
C:\Users\xxxxx\AppData\Local\Programs\Python\Python39 \lib\tkinter_init_.py:1884: FutureWarning: установка элемента несовместимого типа d устарела и вызовет ошибку в будущей версии pandas. Значение '2' имеет тип dtype, несовместимый с int64, сначала явно приведите его к совместимому типу dtype.
return self.func(*args)
Исключение в обратном вызове Tkinter
Traceback (последний вызов последний) :
Файл "C:\Users\xxxxxx\AppData\Local\Programs\Python\Python39\lib\tkinter_init_.py", строка 1884, в call
return self.func(*args)
Файл "C:\Users\xxxxx\Desktop\xxxx-xxx\xxx-venv\lib\site-packages\pandastable\core.pyy", строка 2350, в handle_arrow_keys
x,y = self.getCanvasPos(self.currentrow, self.currentcol-1)
Файл "C:\Users\xxxxx\Desktop\xxxx-xxx\xxx-venv\ lib\site-packages\pandastable\core.py", строка 2151, в getCanvasPos
x1,y1,x2,y2 = self.getCellCoords(row,col)
Файл "C:\Users\xxxxx \Desktop\xxxx-xxx\xxx-venv\lib\site-packages\pandastable\core.py", строка 2140, в getCellCoords
x1=self.col_positions[col]
IndexError: вывести индекс диапазона
когда я пишу на вторую вкладку, это работает - я могу писать в ячейку там.
но при записи на первую вкладку происходит сбой и отправляется эта ошибка.
есть идеи, почему это произошло?
заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/787 ... -positions

Вернуться в «Python»