输入多个日期中的pysimplegui多行盒

发布于 2025-01-20 17:57:26 字数 802 浏览 1 评论 0原文

我希望能够将 Excel 中的日期列表粘贴到 PySimpleGUI 多行框中,并将条目保存为 pandas DateTime 列表。

这是我当前的代码:

layout = [
    [sg.Text("Please fill out the following fields:", font=font)],
    [
        sg.Text("Date List", size=size, font=font),
        sg.Multiline(size=(20, 10), font=font, key="date_list"),
    ],
    [
        sg.Submit(font=font),
        sg.Button("Clear", font=font),
        sg.Exit(font=font),
    ],
]
window = sg.Window("Date list entry form", layout)

这是我从 Excel 复制的代码:

在此处输入图像描述

这是输出:

('提交', {'date_list': '3/18/2020\n3/19/2021\n3/18/2022'})

如何将 date_list 转换为 pandas DateTime 列表?

I would like to be able to paste a list of dates from Excel into a PySimpleGUI multiline box and save the entry as a pandas DateTime list.

This is my current code:

layout = [
    [sg.Text("Please fill out the following fields:", font=font)],
    [
        sg.Text("Date List", size=size, font=font),
        sg.Multiline(size=(20, 10), font=font, key="date_list"),
    ],
    [
        sg.Submit(font=font),
        sg.Button("Clear", font=font),
        sg.Exit(font=font),
    ],
]
window = sg.Window("Date list entry form", layout)

This is what I copy from Excel:

enter image description here

This is the output:

('Submit', {'date_list': '3/18/2020\n3/19/2021\n3/18/2022'})

How do I convert date_list to a pandas DateTime list?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧瑾黎汐 2025-01-27 17:57:26

调用方法str.splitlines to values ['date_list'],以及通过方法pd.timestamp进行迭代项目。

import pandas as pd
import PySimpleGUI as sg

font = ('Courier New', 11)

layout = [
    [sg.Text("Please fill out the following fields:", font=font)],
    [
        sg.Text("Date List", font=font),
        sg.Multiline(size=(20, 10), font=font, key="date_list"),
    ],
    [
        sg.Submit(font=font),
        sg.Button("Clear", font=font),
        sg.Exit(font=font),
    ],
]
window = sg.Window('Title', layout, finalize=True)

while True:

    event, values = window.read()

    if event == sg.WIN_CLOSED:
        break
    elif event == 'Submit':
        lst = values['date_list'].strip().splitlines()
        try:
            print(list(map(pd.Timestamp, lst)))
        except ValueError:
            print('Wrong datetime format')

window.close()
[Timestamp('2020-03-18 00:00:00'), Timestamp('2021-03-19 00:00:00'), Timestamp('2022-03-18 00:00:00')]

Call method str.splitlines to values['date_list'], and iterate items by method pd.Timestamp.

import pandas as pd
import PySimpleGUI as sg

font = ('Courier New', 11)

layout = [
    [sg.Text("Please fill out the following fields:", font=font)],
    [
        sg.Text("Date List", font=font),
        sg.Multiline(size=(20, 10), font=font, key="date_list"),
    ],
    [
        sg.Submit(font=font),
        sg.Button("Clear", font=font),
        sg.Exit(font=font),
    ],
]
window = sg.Window('Title', layout, finalize=True)

while True:

    event, values = window.read()

    if event == sg.WIN_CLOSED:
        break
    elif event == 'Submit':
        lst = values['date_list'].strip().splitlines()
        try:
            print(list(map(pd.Timestamp, lst)))
        except ValueError:
            print('Wrong datetime format')

window.close()
[Timestamp('2020-03-18 00:00:00'), Timestamp('2021-03-19 00:00:00'), Timestamp('2022-03-18 00:00:00')]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文