Python绘制数据中x值的数量

Python绘制数据中x值的数量,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我有一个巨大的csv数据文件,看起来像这样: STAID, SOUID, DATE, TX, Q_TX 162,100522,19010101, -31, 0 162,100522,19010102, -13, 0 TX是温度,数据会持续几千行,给你一个想法 每年,我都要画出气温高于25度的天数 import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("klima

我有一个巨大的csv数据文件,看起来像这样:

STAID,    SOUID,    DATE,   TX, Q_TX
   162,100522,19010101,  -31,    0
   162,100522,19010102,  -13,    0
TX是温度,数据会持续几千行,给你一个想法

每年,我都要画出气温高于25度的天数

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv("klimaat.csv")

zomers = data.index[data["TX"] > 250].tolist()

x_values = []
y_values = []
plt.xlabel("Years")
plt.ylabel("Amount of days with TX > 250")
plt.title("Zomerse Dagen Per Jaar")
plt.plot(x_values, y_values)

# save plot
plt.savefig("zomerse_dagen.png")
X轴应该是1900-2010年之类的年份,y轴应该是当年温度高于250天的天数


我该怎么办我不能完全掌握如何从数据中提取天数。。。。然后在绘图中使用它。

您可以使用python标准库中的
datetime
模块来解析日期,尤其是查看函数。然后可以使用
datetime.year
属性来聚合数据


在将
OrderedDict.keys()
OrderedDict.values()
分别指定给
x_值
y_值
之前,您还可以使用来跟踪聚合情况。

您可以分别创建数据点,以便于理解。然后使用pandas.pivot_表进行聚合。下面是一个工作示例,可以帮助您继续

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv("klimaat.csv", parse_dates=["DATE"])
data.sort_values("DATE", inplace=True)
data["above_250"] = data.TX > 250
data["year"] = data.apply(lambda x: x["DATE"].year, axis=1).astype("category")

plot_df = pd.pivot_table(data, index="year", values="above_250", aggfunc="sum")

years = plot_df.index
y_pos = np.arange(len(years))
values = plot_df.above_250

plt.bar(y_pos, values, align='center', alpha=0.5)
plt.xticks(y_pos, years)
plt.ylabel("Amount of days with TX > 250")
plt.xlabel("Year")
plt.title("Zomerse Dagen Per Jaar")

plt.show()