Получить последний файл из папки Python - PullRequest
0 голосов
/ 30 апреля 2020

Это полное редактирование, поскольку я обнаружил, в чем заключается моя проблема, но я до сих пор не могу решить эту проблему.

Я пытаюсь создать функцию, которая получает последний файл из папки на основе пользовательский ввод и превратить его в фрейм данных. У меня есть несколько папок, назначенных в качестве констант. Вопросы, которые я нахожу, - это поиск последнего файла, который, как мне кажется, может испортить ситуацию, поскольку я изменяю несколько файлов одновременно, меняя их время последнего изменения на одно и то же время. Даже тогда я попытался, и он только распечатал переменную, path1 вернул C:\Users\USER\PycharmProjects\Corona Stats\Country Series вместо 04-27-2020.csv

Если я введу «Страна», он должен вернуть последний именованный файл или первый в зависимости от сортировки с именем 04-27-2020 из path1.

import pandas as pd
import os
from matplotlib import pyplot as plt
import matplotlib
import glob

path1 = r"C:\Users\USER\PycharmProjects\Corona Stats\Country Series"
path2 = r"C:\Users\USER\PycharmProjects\Corona Stats\US Series"
path3 = r"C:\Users\USER\PycharmProjects\Corona Stats\US State Series"
path4 = r"C:\Users\USER\PycharmProjects\Corona Stats\US County Series"

def top_cases():
    top_num = int(input("You're looking for the top...\n"))
    if series == 'Country':

        # this is where I realized I wasn't grabbing the right target

        x = df.sort_values(by='Confirmed', ascending=False)
        x = df['Country'].head(top_num)

1 Ответ

0 голосов
/ 30 апреля 2020

sort_values работает с DataFrame, вы используете его с Series (это является причиной ошибки: sort_values() got an unexpected keyword argument 'by')

Я предлагаю вам изменить внутри top_cases функцию:

    if series == 'Country':
        df = daily_framer(path1)
        x = df.sort_values(by=['Confirmed','Country'], ascending=True).head(top_num)
    elif series == 'US State':
        df = daily_framer(path3)
        x = df.sort_values(by=['Confirmed','State'], ascending=True).head(top_num)
    elif series == 'US County':
        df = daily_framer(path4)
        x = df.sort_values(by=['Confirmed','County'], ascending=True).head(top_num)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...