【问题标题】:Uneven line diagram plotting and change of date format不均匀线图绘制和日期格式的变化
【发布时间】:2017-08-18 02:26:07
【问题描述】:

我在熊猫情节中有两个奇怪的问题。下面是我正在处理的样本数据,它是三个压力值的数据集。我只想将这些值绘制为折线图,日期为 xaxis。

Date    D1  D2  D3
01/01/2017  1013    1013    1013
02/01/2017  1014    1013.5  1015
03/01/2017  1014    1014.5  1014
04/01/2017  1014    1014    1012.4
05/01/2017  1014    1013.5  1012
06/01/2017  1014    1014    1012
07/01/2017  1012    1013    1011.8
08/01/2017  1012    1012    1011.8
09/01/2017  1011    1011    1012
10/01/2017  1012    1012    1013.6
11/01/2017  1012    1013    1014
12/01/2017  1013    1013    1013
13/01/2017  1013    1013    1013
14/01/2017  1012    1012.5  1012
15/01/2017  1014.5  1012    1015
16/01/2017  1014    1014    1015.9
17/01/2017  1015    1015    1015.4
18/01/2017  1015    1014    1015.6
19/01/2017  1014    1014    1015
20/01/2017  1014    1013    1015.3
21/01/2017  1014    1014    1014
22/01/2017  1014    1013    1016
23/01/2017  1014    1013    1016
24/01/2017  1014    1013    1016
25/01/2017  1014    1014    1015
26/01/2017  1014    1014    1014.7
27/01/2017  1014    1013    1013.5
28/01/2017  1013    1012    1013.4
29/01/2017  1012    1013    1014
30/01/2017  1012    1014    1014.5
31/01/2017  1014    1013    1014
01/02/2017  1014    1014    1012
02/02/2017  1014    1013    1014
03/02/2017  1014    1016    1013
04/02/2017  1014    1014    1015
05/02/2017  1014    1013    1013
06/02/2017  1013    1013    1014
07/02/2017  1015    1014    1013
08/02/2017  1014    1014    1015
09/02/2017  1014    1013    1014
10/02/2017  1014    1013    1013
11/02/2017  1014    1013    1013
12/02/2017  1013    1014    1014
13/02/2017  1013    1014    1014
14/02/2017  1016    1015.5  1015.6
15/02/2017  1016    1015.5  1015
16/02/2017  1016    1015    1012
17/02/2017  1016    1016    1011.9
18/02/2017  1014    1016    1012.3
19/02/2017  1015    1013    1013.4
20/02/2017  1015    1016    1012.3
21/02/2017  1014    1015    1010.7
22/02/2017  1012    1013    1010.7
23/02/2017  1013    1013    1013.2
24/02/2017  1014    1013    1013.2
25/02/2017  1013    1013    1014
26/02/2017  1014    1014    1014.5
27/02/2017  1013    1013    1011.3
28/02/2017  1012    1013    1012.6

这是我绘制上述数据的最低限度示例代码

df = pd.read_csv(data_path, index_col=0, parse_dates=True)
df1 = df[['D1', 'D2', 'D3']]
plt1 = df1.plot(marker='o', figsize=(16, 9), title=title, grid=True)

这是我得到的奇怪情节:-

您可以从情节中看到两个奇怪的问题:-

  1. 情节一开始就被挤得满满当当,而且不均匀。

  2. DD:MM:YYYY 中的日期格式已更改为完全不同。

有人可以指导我解决上述问题吗?

【问题讨论】:

  • 如果您去掉 parse_dates 并作为单独的操作执行以下操作会发生什么:df.index = pd.to_datetime(df.Date, "%d/%m/%Y")
  • 抛出错误'DataFrame' object has no attribute 'Date'
  • Date 切换为index 抱歉。那是我最初编辑的内容。所以df.index
  • 能够提取索引但再次收到此错误AssertionError

标签: python pandas


【解决方案1】:

pd.read_csv 使用参数dayfirst=True

df = pd.read_csv(data_path, index_col=0, parse_dates=True, dayfirst=True)
df1 = df[['D1', 'D2', 'D3']]
plt1 = df1.plot(marker='o', figsize=(16, 9), title=title, grid=True)

【讨论】:

  • 如此简单。我认为这就是我在 cmets 中的建议(以迂回的方式),但显然它没有......
  • 我过去有过这种情况。 read_csv 使用数据类型似乎比从嵌套列表构建 DF 灵活得多。例如,read_csv 会将"FALSE" 解析为False,但如果我从列表中尝试则不会。有没有一种简单的方法可以在阅读 csvs 之外重新创建 csv 阅读器的灵活性?我错过了一些东西。
  • @roganjosh 我只遇到了极少数read_csv 可以做到的事情,而在它之外无法轻松完成。不幸的是,这几件事并没有浮现在脑海中。但是,如果您遇到一个您想通过直接构建数据框来解决但似乎只能通过导入 csv 来解决的问题,请发布一个问题。我相信你会得到答案。
  • 好的,这令人放心,因为我有几个实例,并认为我缺少一些基本的东西。另一个例子是它会自动将数字列转换为浮动,无论是否存在空白字符串,但如果我在从嵌套列表创建时尝试与astype() 相同,则会引发错误。我会在接下来的几天里准备一个问题。
  • 我提出了一个问题:stackoverflow.com/questions/45753777/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多