如何使用Python pandas在同一个excel文件中绘制来自多个工作表的数据图

时间:2016-08-15 16:04:36

标签: python excel pandas

我有4张纸,它们具有相同数量的列和相同数量的数据。

但是我想把压力图绘制为y,而日期为X.所以在一个图中会有四行。我可以单独制作它们但不能全部制作它们。四张纸的日期相同,但是对于每个日期,每张纸可能有不同的金额值。您可以在我的代码中找到有关is_basin_name的内容,以帮助每次只选择一个压力。我需要选择这些来制作新表吗?或者有另一种方法来制作这个情节吗?

以下是我单张图的代码:

import pandas as pd
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
a=pd.read_excel('mslp0.0001.xlsx', '0.1-20', index_col=None, na_values=['NA'])
c=[]
c=a[['basin name','lead time(hours)','max 10-m wind 9kt0','min MSLP(hPa)','wind speed threshold(kt)']]
is_basin_name = a['lat*10'] > 0
is_wind_thresh =a['wind speed threshold(kt)'] == 34
#data to make a plot of mslp and 10m wind with leading time
valid_data = a[is_basin_name & is_wind_thresh]
#plot of mslp and lead time
ax=valid_data.plot(kind='line',x='lead time(hours)',y='min MSLP(hPa)')
plt.show()

excel文件(不能在这里制作表格,所以描述):

每张纸都有两列,日期和压力。

1 个答案:

答案 0 :(得分:0)

我假设您正在尝试合并并绘制来自四张纸的所有数据。在这种情况下,您可以将每张表中的数据加载到pandas df中并将它们合并在一起。鉴于您的工作表具有相同数据量,因此更容易实现。 您可以直接使用pandas:

import pandas as pd
data = pd.ExcelFile(".../pressure_data.xlsx")

list_dfs = []
sheets = data.sheet_names 
for sheet in sheets:
    list_dfs = data.parse(sheet)

df = pd.concat(list_dfs)

#plot

pandas concat:见第一个例子。

顺便说一句,这是什么意思? '日期压力1. 1 2. 2 3. 2 4. 2'