【问题标题】:Use index in pandas to plot data在 pandas 中使用索引来绘制数据
【发布时间】:2013-12-03 18:28:12
【问题描述】:

我有一个 pandas-Dataframe 并使用 resample() 来计算平均值(例如每日或每月平均值)。 这是一个小例子。

import pandas as pd  
import numpy as np

dates = pd.date_range('1/1/2000', periods=100)
df = pd.DataFrame(np.random.randn(100, 1), index=dates, columns=['A'])

monthly_mean = df.resample('M').mean()

我现在如何绘制monthly_mean

我如何设法将新创建的 DataFrame monthly_mean 的索引用作 x 轴?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    试试这个,

    monthly_mean.plot(y='A', use_index=True)
    

    【讨论】:

      【解决方案2】:

      您可以使用reset_index 将索引转回一列:

      monthly_mean.reset_index().plot(x='index', y='A')
      

      单独查看monthly_mean.reset_index() - 日期不再在索引中,而是数据框中的一列,现在只是由整数索引。如果您查看reset_index 的文档,您可以更好地控制该过程,包括为索引分配合理的名称。

      【讨论】:

        【解决方案3】:

        还有,

        monthly_mean.plot(x=df.index, y='A')

        【讨论】:

          【解决方案4】:
          monthly_mean.plot(y='A')
          

          默认使用索引作为x轴。

          【讨论】:

            【解决方案5】:
            • 根据索引绘制线图时,最简单的答案是不分配任何xy
            • 这将为所有数字或日期时间列绘制线条,而不指定y
            monthly_mean.plot()
            

            • 如果有多个列并且您希望绘制某些列,则仅指定 y=
            • 或在绘图前选择列(例如monthly_mean[[c1, c2, c5]].plot()
            # sample data with multiple columns (5 x 5)
            df = pd.DataFrame(np.random.random_sample((5, 5)))
            
            # method 1: specify y
            df.plot(y=[0, 2, 4])
            
            # method 2: select columns first
            df[[0, 2, 4]].plot()
            

            【讨论】:

              猜你喜欢
              • 2018-10-29
              • 1970-01-01
              • 1970-01-01
              • 2022-01-25
              • 1970-01-01
              • 2020-07-14
              • 2016-12-31
              • 1970-01-01
              • 2021-04-08
              相关资源
              最近更新 更多