print pandas dataframe в pygame построчно - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь распечатать свой фрейм данных в окне pygame. Я знаю, что это не очень хорошая вещь, но я должен сделать это, чтобы мои данные были видны и не печатались нормально.

У меня есть этот словарь:

Y = {a: dict(b) for a, b in X.items()}
print(Y)

the результат:

{(0, 0): {(0, 0): 0, (0, 1): 1, (0, 2): 2, (0, 3): 3, (1, 3): 4, (0, 4): 4, (0, 5): 7, (1, 5): 6, (1, 0): 9, (2, 0): 8, (1, 1): 10, (1, 2): 5, (2, 2): 6, (1, 4): 5, (2, 1): 7, (2, 3): 7, (2, 4): 8, (2, 5): 9}, (0, 1): {(0, 1): 0, (0, 0): 1, (0, 2): 1, (0, 3): 2, (1, 3): 3, (0, 4): 3, (0, 5): 6, (1, 5): 5, (1, 0): 8, (2, 0): 7, (1, 1): 9, (1, 2): 4, (2, 2): 5, (1, 4): 4, (2, 1): 6, (2, 3): 6, (2, 4): 7, (2, 5): 8}, (0, 2): {(0, 2): 0, (0, 1): 1, (0, 3): 1, (0, 0): 2, (1, 3): 2, (0, 4): 2, (0, 5): 5, (1, 5): 4, (1, 0): 7, (2, 0): 6, (1, 1): 8, (1, 2): 3, (2, 2): 4, (1, 4): 3, (2, 1): 5, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (0, 3): {(0, 3): 0, (0, 2): 1, (1, 3): 1, (0, 4): 1, (0, 0): 3, (0, 1): 2, (0, 5): 4, (1, 5): 3, (1, 0): 6, (2, 0): 5, (1, 1): 7, (1, 2): 2, (2, 2): 3, (1, 4): 2, (2, 1): 4, (2, 3): 4, (2, 4): 5, (2, 5): 6}, (1, 3): {(1, 3): 0, (0, 3): 1, (1, 2): 1, (1, 4): 1, (0, 0): 4, (0, 1): 3, (0, 2): 2, (0, 4): 2, (0, 5): 3, (1, 5): 2, (1, 0): 5, (2, 0): 4, (1, 1): 6, (2, 2): 2, (2, 1): 3, (2, 3): 3, (2, 4): 4, (2, 5): 5}, (0, 4): {(0, 4): 0, (0, 3): 1, (0, 0): 4, (0, 1): 3, (0, 2): 2, (1, 3): 2, (0, 5): 5, (1, 5): 4, (1, 0): 7, (2, 0): 6, (1, 1): 8, (1, 2): 3, (2, 2): 4, (1, 4): 3, (2, 1): 5, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (0, 5): {(0, 5): 0, (1, 5): 1, (0, 0): 7, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (1, 0): 8, (2, 0): 7, (1, 1): 9, (1, 2): 4, (2, 2): 5, (1, 4): 2, (2, 1): 6, (2, 3): 6, (2, 4): 7, (2, 5): 8}, (1, 5): {(1, 5): 0, (0, 5): 1, (1, 4): 1, (0, 0): 6, (0, 1): 5, (0, 2): 4, (0, 3): 3, (1, 3): 2, (0, 4): 4, (1, 0): 7, (2, 0): 6, (1, 1): 8, (1, 2): 3, (2, 2): 4, (2, 1): 5, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (1, 0): {(1, 0): 0, (2, 0): 1, (1, 1): 1, (0, 0): 9, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 4): 7, (0, 5): 8, (1, 5): 7, (1, 2): 4, (2, 2): 3, (1, 4): 6, (2, 1): 2, (2, 3): 4, (2, 4): 5, (2, 5): 6}, (2, 0): {(2, 0): 0, (1, 0): 1, (2, 1): 1, (0, 0): 8, (0, 1): 7, (0, 2): 6, (0, 3): 5, (1, 3): 4, (0, 4): 6, (0, 5): 7, (1, 5): 6, (1, 1): 2, (1, 2): 3, (2, 2): 2, (1, 4): 5, (2, 3): 3, (2, 4): 4, (2, 5): 5}, (1, 1): {(1, 1): 0, (1, 0): 1, (0, 0): 10, (0, 1): 9, (0, 2): 8, (0, 3): 7, (1, 3): 6, (0, 4): 8, (0, 5): 9, (1, 5): 8, (2, 0): 2, (1, 2): 5, (2, 2): 4, (1, 4): 7, (2, 1): 3, (2, 3): 5, (2, 4): 6, (2, 5): 7}, (1, 2): {(1, 2): 0, (1, 3): 1, (2, 2): 1, (0, 0): 5, (0, 1): 4, (0, 2): 3, (0, 3): 2, (0, 4): 3, (0, 5): 4, (1, 5): 3, (1, 0): 4, (2, 0): 3, (1, 1): 5, (1, 4): 2, (2, 1): 2, (2, 3): 2, (2, 4): 3, (2, 5): 4}, (2, 2): {(2, 2): 0, (1, 2): 1, (2, 1): 1, (2, 3): 1, (0, 0): 6, (0, 1): 5, (0, 2): 4, (0, 3): 3, (1, 3): 2, (0, 4): 4, (0, 5): 5, (1, 5): 4, (1, 0): 3, (2, 0): 2, (1, 1): 4, (1, 4): 3, (2, 4): 2, (2, 5): 3}, (1, 4): {(1, 4): 0, (1, 3): 1, (1, 5): 1, (0, 0): 5, (0, 1): 4, (0, 2): 3, (0, 3): 2, (0, 4): 3, (0, 5): 2, (1, 0): 6, (2, 0): 5, (1, 1): 7, (1, 2): 2, (2, 2): 3, (2, 1): 4, (2, 3): 4, (2, 4): 5, (2, 5): 6}, (2, 1): {(2, 1): 0, (2, 0): 1, (2, 2): 1, (0, 0): 7, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (0, 5): 6, (1, 5): 5, (1, 0): 2, (1, 1): 3, (1, 2): 2, (1, 4): 4, (2, 3): 2, (2, 4): 3, (2, 5): 4}, (2, 3): {(2, 3): 0, (2, 2): 1, (2, 4): 1, (0, 0): 7, (0, 1): 6, (0, 2): 5, (0, 3): 4, (1, 3): 3, (0, 4): 5, (0, 5): 6, (1, 5): 5, (1, 0): 4, (2, 0): 3, (1, 1): 5, (1, 2): 2, (1, 4): 4, (2, 1): 2, (2, 5): 2}, (2, 4): {(2, 4): 0, (2, 3): 1, (2, 5): 1, (0, 0): 8, (0, 1): 7, (0, 2): 6, (0, 3): 5, (1, 3): 4, (0, 4): 6, (0, 5): 7, (1, 5): 6, (1, 0): 5, (2, 0): 4, (1, 1): 6, (1, 2): 3, (2, 2): 2, (1, 4): 5, (2, 1): 3}, (2, 5): {(2, 5): 0, (2, 4): 1, (0, 0): 9, (0, 1): 8, (0, 2): 7, (0, 3): 6, (1, 3): 5, (0, 4): 7, (0, 5): 8, (1, 5): 7, (1, 0): 6, (2, 0): 5, (1, 1): 7, (1, 2): 4, (2, 2): 3, (1, 4): 6, (2, 1): 4, (2, 3): 2}}[!

Затем я могу сохранить его в фрейм данных:

df = pd.DataFrame(Y)
df.index = [*df.index]
df.columns = [*df.columns] 
print(df)

, и результат:

        (0, 0)  (0, 1)  (0, 2)  (0, 3)  ...  (2, 1)  (2, 3)  (2, 4)  (2, 5)
(0, 0)       0       1       2       3  ...       7       7       8       9
(0, 1)       1       0       1       2  ...       6       6       7       8
(0, 2)       2       1       0       1  ...       5       5       6       7
(0, 3)       3       2       1       0  ...       4       4       5       6
(1, 3)       4       3       2       1  ...       3       3       4       5
(0, 4)       4       3       2       1  ...       5       5       6       7
(0, 5)       7       6       5       4  ...       6       6       7       8
(1, 5)       6       5       4       3  ...       5       5       6       7
(1, 0)       9       8       7       6  ...       2       4       5       6
(2, 0)       8       7       6       5  ...       1       3       4       5
(1, 1)      10       9       8       7  ...       3       5       6       7
(1, 2)       5       4       3       2  ...       2       2       3       4
(2, 2)       6       5       4       3  ...       1       1       2       3
(1, 4)       5       4       3       2  ...       4       4       5       6
(2, 1)       7       6       5       4  ...       0       2       3       4
(2, 3)       7       6       5       4  ...       2       0       1       2
(2, 4)       8       7       6       5  ...       3       1       0       1
(2, 5)       9       8       7       6  ...       4       2       1       0

Мой вопрос: можно ли распечатать этот последний результат на pygame? Моя идея - сохранить каждую строку в массиве, а затем распечатать каждую строку массива отдельно и в правильном порядке. Я сделал это так:

def printAM(x, y, cella, df):
    arraydf = df.to_numpy()
    y_offset = 0
    for line in arraydf:
        textsurface = myfontsmall.render(str(line), False, (255, 255, 255))
        screen.blit(textsurface, (x, y+y_offset))
        y_offset += cella
    pygame.display.update()

Но результат не очень хороший, как видно из этого изображения результата .

Как я могу сделать режим красивым? И как вы думаете, возможно ли иметь имена узлов в первой строке и в последнем столбце?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...