csvファイルをdfで読み込む前に整形したらうまくいった。
import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline def plot_tokyotemps(year, month): # 定数、入れ物、引数からの数を用意する df = pd.read_csv('sample.csv', encoding='sjis') years = [] temps = [] end = len(df.index) start = (year - 1872) * 12 + (month - 1) # 入れ物に必要な数を入れていく for i in range(start, end, 12): years.append(year) temps.append(df.iloc[i, 1]) year += 1 # 描画をする plt.plot(years, temps, label='平均気温') plt.legend() plt.xlabel('year') plt.ylabel('temp') return tuple(zip(years, temps)) # 実行! plot_tokyotemps(1900, 12)