【问题标题】:Add chart to excel with data from multiple sheets using python使用python将图表添加到Excel中,其中包含来自多个工作表的数据
【发布时间】:2019-10-24 06:50:36
【问题描述】:

我在所有工作表中有 60 多张具有相同列(时间、数据 1、数据 2、数据 3)的工作表。我想在单个图中绘制所有工作表与其他列的 xy 散点平滑线图,其中包含来自所有工作表的数据。最有效的方法是什么? 我试过了

xl=pd.ExcelFile(f_o)
xl_sheets = []
for sheet in xl.sheet_names:
    xl_sheets.append(xl.parse(sheet))
    dfc = pd.concat(xl_sheets)
print dfc.shape
time_df=dfc['UTCTime']
for i in list(dfc.columns):
    print i
    time.sleep(5000)
    if i!='UTCTime':
        ydata=dfc[i]
        print ydata.head()
        xlf.plot(time_df,ydata)     
    else:
        continue    
plt.show()

【问题讨论】:

    标签: python excel pandas charts


    【解决方案1】:

    以下是我将如何使用我最喜欢的工具。

    进口

    from pathlib import Path
    import pandas as pd
    import matplotlib.pyplot as plt
    

    抓取数据

    对于多个文件

    all_df = []
    for excel in Path("path/to/files").iterdir():
        all_df.append(pd.read_excel(excel))
    df = pd.concat(all_df)
    

    一个文件中的多张纸

    df = pd.read_excel("file.xlsx", sheet_name=None) 
    

    图表数据

    for column in df.columns:
        if column != "Time" :
            df.plot.scatter(x="Time", y=column)
    plt.show()
    

    【讨论】:

    • 谢谢。由于不想按时间绘制时间,如何从列列表中删除列?
    • @Sridutt 我已经更新了代码。你也可以这样做,df.columns[1:]
    • 我收到错误说散点图 x 轴仅采用数值。时间是 datetime64[ns]
    • 有什么想法吗?到目前为止感谢
    • github.com/pandas-dev/pandas/issues/18755 正如讨论所说,这似乎是熊猫情节中的一个问题。有趣的是,默认的 matplotlib 情节适用于日期时间,而基于它的熊猫有一个限制
    猜你喜欢
    • 2021-11-20
    • 2022-06-24
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    相关资源
    最近更新 更多