【问题标题】:Make all columns (dates) index of data frame制作数据框的所有列(日期)索引
【发布时间】:2014-04-10 01:10:28
【问题描述】:

我的数据是这样组织的:

其中国家代码是数据框的索引,列是数据的年份。首先,是否可以在不进一步转换数据的情况下为每个国家绘制线图(使用 matplotlib.pylot)?

其次,如果上述方法不可行,如何使列成为表的索引,以便绘制时间序列折线图?

尝试df.t 给了我这个:

我现在如何将日期设为索引?

【问题讨论】:

  • 这是一个糟糕的设计选择。年份应该是索引,国家应该是列。
  • 我想是的,这就是我提出第二个问题的原因。
  • 我不明白这个问题。转置将使数年成为索引。
  • 在转置之前执行df = df[df.index != 'Country Code'],或者在之后执行del df['Country Code']

标签: python pandas matplotlib dataframe


【解决方案1】:
  1. 使用df.T转置。

  2. 照常绘制。

示例:

import pandas as pd
df = pd.DataFrame({1990:[344,23,43], 1991:[234,64,23], 1992:[43,2,43]}, index = ['AFG', 'ALB', 'DZA'])
df = df.T
df

      AFG  ALB  DZA
1990  344   23   43
1991  234   64   23
1992   43    2   43

# transform index to dates
import datetime as dt
df.index = [dt.date(year, 1, 1) for year in df.index]
import matplotlib.pyplot as plt
df.plot()
plt.savefig('test.png')

【讨论】:

  • 对不起,日期现在是索引,但是当我绘图时出现此错误:x 和 y 必须具有相同的第一维。我认为这是因为国家代码名称弄乱了尺寸。如何删除“国家代码”?
猜你喜欢
  • 2012-12-01
  • 2017-10-04
  • 1970-01-01
  • 2014-12-06
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多