阅读擅长与Pythonpandas和孤立列/行来绘图

我正在使用Pythonpandasread_excel创build一个直方图或线图。 我想阅读整个文件。 这是一个大文件,我只想绘制一些特定的值。 我知道如何在read_excel中使用skiprows和parse_cols,但是如果我这样做,它不会读取我需要用于轴标签的文件的一部分。 我也不知道如何告诉它绘制我想要的X值和我想要的Y值。 下面是我拥有的:

df=pd.read_excel('JanRain.xlsx',parse_cols="C:BD") years=df[0] precip=df[31:32] df.plot.bar() 

我希望x轴是excel文件(年)的第一行,我希望条形图中的每个小节都是excel文件第31行的值。 我不知道如何隔离这个。 用pandas阅读会比较容易,然后用matplotlib绘图?

这里是一个excel文件的例子。 第一行是年,第二列是月份的日子(这个文件只有一个月:

这里是一个excel文件的例子。第一行是年,第二列是一个月的日子(这个文件只有一个月

以下是我将如何绘制一个大数据框的行31中的数据,将行0设置为x轴。 (更新的答案)

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

创build一个32行,10列的随机数组

 df = pd.DataFrame(np.random.rand(320).reshape(32,10), columns=range(64,74), index=range(1,33)) df.to_excel(r"D:\data\data.xlsx") 

使用“parse_cols”和“skiprows”只读取您想要的列和行。 本例中的第一列是数据框索引。

 # load desired columns and rows into a dataframe # in this method, I firse make a list of all skipped_rows desired_cols = [0] + list(range(2,9)) skipped_rows = list(range(1,33)) skipped_rows.remove(31) df = pd.read_excel(r"D:\data\data.xlsx", index_col=0, parse_cols=desired_cols, skiprows=skipped_rows) 

目前这只产生一个dataframe,只有一行。

  65 66 67 68 69 70 71 31 0.310933 0.606858 0.12442 0.988441 0.821966 0.213625 0.254897 

只隔离你想要绘制的行,给出一个pandas.Series与原始列标题作为索引

 ser = df.loc[31, :] 

绘制系列。

 fig, ax = plt.subplots() ser.plot(ax=ax) ax.set_xlabel("year") ax.set_ylabel("precipitation") 

在这里输入图像说明

 fig, ax = plt.subplots() ser.plot(kind="bar", ax=ax) ax.set_xlabel("year") ax.set_ylabel("precipitation") 

在这里输入图像说明