我有一个数据集:
wholeTextFiles
如何针对'yearweek'绘制每个值?
我试过例如:
A B C D yearweek
0 245 95 60 30 2014-48
1 245 15 70 25 2014-49
2 150 275 385 175 2014-50
3 100 260 170 335 2014-51
4 580 925 535 2590 2015-02
5 630 126 485 2115 2015-03
6 425 90 905 1085 2015-04
7 210 670 655 945 2015-05
但它不起作用并显示
import matplotlib.pyplot as plt
import pandas as pd
new = pd.DataFrame([df['A'].values, df['yearweek'].values])
plt.plot(new)
然后我尝试了这个:
ValueError: could not convert string to float: '2014-48'
结果:
plt.scatter(df['Total'], df['yearweek'])
这是否意味着每周的类型有问题?我该如何解决?
或者是否可以将索引更改为日期?

答案 0 :(得分:1)
从pandas 0.20.X开始,您可以使用DataFrame.plot()生成所需的图。它在引擎盖下使用matplotlib -
import pandas as pd
data = pd.read_csv('Your_Dataset.csv')
data.plot(['yearweek'], ['A'])
此处,yearweek
将成为x轴,A
将成为y。由于它是一个列表,因此在两种情况下都可以使用多个
注意:如果它仍然看起来不太好,那么您可以将yearweek
列正确解析为dateformat,然后重试。
答案 1 :(得分:1)
我看到的最佳解决方案是从头开始计算日期,并将其作为日期时间添加到新列中。然后你可以轻松地绘制它。
df['date'] = df['yearweek'].map(lambda x: datetime.datetime.strptime(x,"%Y-%W")+datetime.timedelta(days=7*(int(x.split('-')[1])-1)))
df.plot('date','A')
所以我从当年的第一个月开始,然后前进7 *(第1周),然后从中生成日期。