Helpers - компьютеры, интернет, программирование

Используйте имя файла .csv в python for-loop

У меня есть код, который берет кучу CSV-файлов и делает отдельные графики с использованием данных. Мне удалось получить помощь по коду (см. здесь: Автоматизировать создание нескольких графиков в python с использованием нескольких файлов .csv), но теперь я хочу изменить его так, чтобы везде, где код говорит, name было заменено именем файла в векторе files. По некоторым причинам это работает только в последней строке кода plt.savefig('{}.png'.format(fn)), но больше нигде.

import pandas as pd
from dateutil import parser, rrule
from datetime import datetime, time, date
import time
import os
import matplotlib.pyplot as plt

files = ['a.pd.csv',
    't.pd.csv',
    'r.pd.csv',
    'n.pd.csv',
    'm.pd.csv',
    'k.pod.csv']

for f in files:
    fn = f.split('.')[0]
    dat = pd.read_csv(f)
    df0 = dat.loc[:, ['TimeStamp', 'RF']]
        # Change time format
    df0["time"] = pd.to_datetime(df0["TimeStamp"])
    df0["day"] = df0['time'].map(lambda x: x.day)
    df0["month"] = df0['time'].map(lambda x: x.month)
    df0["year"] = df0['time'].map(lambda x: x.year)
    df0.to_csv("name_1.csv", na_rep="0")  # write to csv

    # Combine for daily rainfall
    df1 = pd.read_csv('name_1.csv', encoding='latin-1',
                  usecols=['day', 'month', 'year', 'RF', 'TimeStamp'])
    df2 = df1.groupby(['day', 'month', 'year'], as_index=False).sum()
    df2.to_csv("name_2.csv", na_rep="0", header=None)  # write to csv

    # parse date
    df3 = pd.read_csv("name_2.csv", header=None, index_col='datetime',
                 parse_dates={'datetime': [1,2,3]},
                 date_parser=lambda x: pd.datetime.strptime(x, '%d %m %Y'))

    def dt_parse(date_string):
        dt = pd.datetime.strptime(date_string, '%d %m %Y')
        return dt

    # sort datetime
    df4 = df3.sort()
    final = df4.reset_index()

    # rename columns
    final.columns = ['date', 'bleh', 'rf']

    final[['date','rf']].plot()

    plt.suptitle('Name Rain 2015-2016', fontsize=20) #changename
    plt.xlabel('DOY', fontsize=18)
    plt.ylabel('Rain / mm', fontsize=16)

    plt.savefig('{}.png'.format(fn))

  • Какие именно строки? Вы имеете в виду только suptitle()? Если это так, что-то вроде plt.suptitle('Name: {}'.format(fn), fontsize=20) будет работать. 24.02.2017
  • Ага! Это работает .. Спасибо. Еще один вопрос.. Знаете ли вы, как сделать первую букву заглавной в тексте, который я подставляю в {скобки}? 24.02.2017
  • Изменить fn на fn.title () 24.02.2017
  • Хм. У меня это не сработало... Также вы можете проверить мой другой вопрос: stackoverflow.com/questions/42444020/ 24.02.2017
  • Чтобы изменить заголовок графика, чтобы он начинался с заглавной буквы, я имел в виду, что вы можете использовать plt.suptitle('Name: {}'.format(fn.title()), fontsize=20) 25.02.2017
  • Это сработало! Спасибо!! 26.02.2017

Ответы:


1

Решил свою проблему: df2.to_csv('{}_2.csv'.format(fn), na_rep="0", header=None) # write to csv

24.02.2017
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..