如何填写数据框的索引&制作次要情节?

时间:2016-01-03 09:37:04

标签: python pandas matplotlib

根据我提出的问题:Combine similar rows to one row in python dataframe 1

我在下面有原始数据,有2个问题要问:

Meteor._reload.onMigrate(function() {
  return [false];
});
  1. 如何“填写”yyyymmdd hr ariel cat kiki mmax vicky gaolie shiu nick ck 0 2015-12-27 9 0 0 0 0 0 0 0 23 0 1 2015-12-27 10 0 0 0 0 0 0 0 2 0 2 2015-12-27 11 0 0 0 0 0 0 0 20 0 3 2015-12-27 12 0 0 0 0 0 0 0 4 0 4 2015-12-27 17 0 0 0 0 0 0 0 2 0 5 2015-12-27 19 1 0 0 0 0 0 0 0 0 6 2015-12-28 8 0 8 0 0 0 0 0 0 0 7 2015-12-28 9 11 11 0 0 0 0 19 0 0 8 2015-12-28 10 85 13 0 0 2 0 15 0 0 9 2015-12-28 11 2 11 0 0 2 0 14 0 0 10 2015-12-28 12 2 20 0 4 0 0 10 0 0 11 2015-12-28 13 8 9 0 9 3 0 9 0 0 12 2015-12-28 14 4 10 0 8 0 0 22 0 0 13 2015-12-28 15 3 3 0 2 0 0 16 0 0 14 2015-12-28 16 14 5 1 1 0 0 19 0 0 15 2015-12-28 17 15 1 2 0 0 0 19 0 0 16 2015-12-28 18 0 0 0 6 0 0 0 0 0 17 2015-12-28 19 0 0 0 5 0 0 0 0 0 18 2015-12-28 20 0 0 0 1 0 0 0 0 0 的“hr”索引?结果应该是这样的:

    DataFrame

  2. 如何根据列和小时绘制折线图?

  3. x轴=列,即:ariel,cat,kiki ......

  4. y轴= hr,即:8,9,10 ... 20
  5. yyyymmdd hr ariel cat kiki mmax vicky gaolie shiu nick ck 12/27/15 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN 12/27/15 9 0 0 0 0 0 0 0 23 0 12/27/15 10 0 0 0 0 0 0 0 2 0 12/27/15 11 0 0 0 0 0 0 0 20 0 12/27/15 12 0 0 0 0 0 0 0 4 0 12/27/15 13 NaN NaN NaN NaN NaN NaN NaN NaN NaN 12/27/15 14 NaN NaN NaN NaN NaN NaN NaN NaN NaN 12/27/15 15 NaN NaN NaN NaN NaN NaN NaN NaN NaN 12/27/15 16 NaN NaN NaN NaN NaN NaN NaN NaN NaN 12/27/15 17 0 0 0 0 0 0 0 2 0 12/27/15 18 NaN NaN NaN NaN NaN NaN NaN NaN NaN 12/27/15 19 1 0 0 0 0 0 0 0 0 12/27/15 20 NaN NaN NaN NaN NaN NaN NaN NaN NaN 12/28/15 8 0 8 0 0 0 0 0 0 0 12/28/15 9 11 11 0 0 0 0 19 0 0 12/28/15 10 85 13 0 0 2 0 15 0 0 12/28/15 11 2 11 0 0 2 0 14 0 0 12/28/15 12 2 20 0 4 0 0 10 0 0 12/28/15 13 8 9 0 9 3 0 9 0 0 12/28/15 14 4 10 0 8 0 0 22 0 0 12/28/15 15 3 3 0 2 0 0 16 0 0 12/28/15 16 14 5 1 1 0 0 19 0 0 12/28/15 17 15 1 2 0 0 0 19 0 0 12/28/15 18 0 0 0 6 0 0 0 0 0 12/28/15 19 0 0 0 5 0 0 0 0 0 12/28/15 20 0 0 0 1 0 0 0 0 0代表一个日期(即2015-12-27,2015-12-28 ..)
  6. 这是我想得到的情节的框架: please click here for the picture

1 个答案:

答案 0 :(得分:2)

您可以将var testArray = [[TestClosure]?](count: 4, repeatedValue: nil) 转换为yyyymmdd,然后将datetime信息与hr结合起来计算每小时频率,如下所示:

resample

得到:

df.yyyymmdd = pd.to_datetime(df.yyyymmdd)
df.yyyymmdd = df.apply(lambda x: x.yyyymmdd + pd.DateOffset(hours = x.hr), axis=1)
df.set_index('yyyymmdd', inplace=True)
df = df.resample('H')

您可以如下绘制结果 - 假设您正在为每个 hr ariel cat kiki mmax vicky gaolie shiu nick ck yyyymmdd 2015-12-27 09:00:00 9 0 0 0 0 0 0 0 23 0 2015-12-27 10:00:00 10 0 0 0 0 0 0 0 2 0 2015-12-27 11:00:00 11 0 0 0 0 0 0 0 20 0 2015-12-27 12:00:00 12 0 0 0 0 0 0 0 4 0 2015-12-27 13:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 14:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 15:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 16:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 17:00:00 17 0 0 0 0 0 0 0 2 0 2015-12-27 18:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 19:00:00 19 1 0 0 0 0 0 0 0 0 2015-12-27 20:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 21:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 22:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-27 23:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 00:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 01:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 02:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 03:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 04:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 05:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 06:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 07:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2015-12-28 08:00:00 8 0 8 0 0 0 0 0 0 0 2015-12-28 09:00:00 9 11 11 0 0 0 0 19 0 0 2015-12-28 10:00:00 10 85 13 0 0 2 0 15 0 0 2015-12-28 11:00:00 11 2 11 0 0 2 0 14 0 0 2015-12-28 12:00:00 12 2 20 0 4 0 0 10 0 0 2015-12-28 13:00:00 13 8 9 0 9 3 0 9 0 0 2015-12-28 14:00:00 14 4 10 0 8 0 0 22 0 0 2015-12-28 15:00:00 15 3 3 0 2 0 0 16 0 0 2015-12-28 16:00:00 16 14 5 1 1 0 0 19 0 0 2015-12-28 17:00:00 17 15 1 2 0 0 0 19 0 0 2015-12-28 18:00:00 18 0 0 0 6 0 0 0 0 0 2015-12-28 19:00:00 19 0 0 0 5 0 0 0 0 0 2015-12-28 20:00:00 20 0 0 0 1 0 0 0 0 0 date寻找一个子图:

column

得到: enter image description here