【发布时间】:2018-07-11 09:54:49
【问题描述】:
我正在尝试绘制一些数据,但不知何故,x 轴上显示的数据格式不正确。取而代之的是 2018-01-03 等,我收到的是 0028-02-23。加载数据时,从 csv 文件获取数据时已经加载了正确的格式。
此外,我希望将数据绘制在不同的子图中意味着子图 1 中的值组、子图 2 中的值组 B 等。
人像
代码如下:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
csv_loader = pd.read_csv('C:/Users/micha/Desktop/Test.csv', encoding='cp1252', parse_dates=['Date'], sep=';', index_col=0).dropna()
fig, ax = plt.subplots()
csv_loader.groupby('Valuegroup').plot(x='Date', y='Value', ax=ax, legend=False, kind='line')
plt.grid(True)
myFmt = DateFormatter("%Y-%m-%d")
ax.xaxis.set_minor_formatter(myFmt)
plt.show()
数据如下:
Calcgroup;Valuegroup;id;Date;Value Group1;A;1;20080103;0.1 Group1;A;1;20080104;0.3 Group1;A;1;20080107;0.5 Group1;A;1;20080108;0.9 Group1;B;1;20080103;0.5 Group1;B;1;20080104;1.3 Group1;B;1;20080107;2.0 Group1;B;1;20080108;0.15 Group1;C;1;20080103;1.9 Group1;C;1;20080104;2.1 Group1;C;1;20080107;2.9 Group1;C;1;20080108;0.45
导入后我有这个数据框:
csv_loader
Valuegroup id Date Value
Calcgroup
Group1 A 1 2008-01-03 0.10
Group1 A 1 2008-01-04 0.30
Group1 A 1 2008-01-07 0.50
Group1 A 1 2008-01-08 0.90
Group1 B 1 2008-01-03 0.50
Group1 B 1 2008-01-04 1.30
Group1 B 1 2008-01-07 2.00
Group1 B 1 2008-01-08 0.15
Group1 C 1 2008-01-03 1.90
Group1 C 1 2008-01-04 2.10
Group1 C 1 2008-01-07 2.90
Group1 C 1 2008-01-08 0.45
【问题讨论】:
-
关于您的数据框只有两个想法:我不建议使用像您的
Calcgroup这样的列作为索引;索引应该提供对数据框中单行的唯一访问。然后 - IMO -csv_reader不是 pandas 数据框的正确名称;这将是对pd.read_csv函数的一个很好的描述,但不是它的返回值
标签: python pandas dataframe matplotlib