KeyError当我想尝试绘图时

时间:2017-10-19 18:10:30

标签: python pandas plot data-science

每当我尝试对U对象执行操作时,我都会收到错误。我总是得到一个KeyError。我已多次尝试绘制U(最后一句)。

export class AlertModalComponent implements OnInit {

  @ViewChild('childModal') public childModal: ModalDirective;

  @Input() title: string;
  constructor() {
  }
  show() {
    this.childModal.show();
  }
  hide() {
    this.childModal.hide();
  }
}

我去了以下错误

import pandas as pd
users =pd.read_csv('./users.csv',sep=',',parse_dates=[30])
users.head()
users.columns.get_loc("WhenCreated")
users['Month'] = users['WhenCreated'].dt.month
users.head()
UsersCreatedin2017=users['WhenCreated'] > '2017-01-01'
users2017=users[UsersCreatedin2017].copy()
users2017[['Month','UserPrincipalName']].groupby('Month').count()
u=users2017[['Month','UserPrincipalName']].groupby('Month').count().copy()
u.plot(kind='line', x='Month', y='UserPrincipalName')

我尝试u.plot()但是我得到了以下输出

我想要绘制的数据是:     通过UserPrincipalName 月
1 61 2 53 3 44 4 31 5 34 6 21 7 28 8 196 9 42

1 个答案:

答案 0 :(得分:0)

你想在groupby中使用as_index = False(或者之后的reset_index):

In [11]: df = pd.DataFrame([[1, 2], [1, 3], [2, 4]], columns=["A", "B"])

In [12]: df
Out[12]:
   A  B
0  1  2
1  1  3
2  2  4

In [13]: df.groupby("A").count()
Out[13]:
   B
A
1  2
2  1

In [14]: df.groupby("A", as_index=False).count()
Out[14]:
   A  B
0  1  2
1  2  1

正如你所看到的,没有as_index = False,A在索引而不是列中,这就是plot方法无法找到它的原因(引发KeyError)。