我在csv中有这些列,并希望以时间序列格式绘制英国和法国橙子。
我可以在时间序列中为英国和橘子画情节,但我不能在时间序列中绘制英国+法国橘子。
有人可以帮助我吗?
请查看CSV附带的图片 Oranges_Apples_country.csv
import logging
import datetime
import csv
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#import orangesdata from CSV file
df = pd.read_csv('Oranges_Apples_country.csv')
df.head()
df['date'] = pd.to_datetime(df['date'])
df.set_index('date').head()
df = pd.DataFrame(df, columns = ['country', 'product', 'unit', 'date'])
df['country'] = ['UK', 'FRANCE']
df['product'] = ['ORANGES', 'APPLE']
df['unit'] = ['KG']
答案 0 :(得分:0)
这里有一些代码用于你提到的轴上的子集。我从另一个SO帖子中取了for
循环,但我不记得链接。向该贡献者道歉。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (10,8)
fig, ax = plt.subplots()
df = pd.read_csv('fruit.csv', parse_dates = ['DATE'])
df.set_index('DATE', inplace=True)
df2 = df[((df['COUNTRY'] == 'UK') & (df['PRODUCT'] == 'ORANGE')) | \
((df['COUNTRY'] == 'FRANCE') & (df['PRODUCT'] == 'ORANGE'))]
labels = []
for key, grp in df2.groupby(['COUNTRY', 'PRODUCT']):
ax = grp.plot(ax = ax, y = 'QUANTITY')
labels.append(key)
lines, _ = ax.get_legend_handles_labels()
ax.legend(lines, labels, loc='upper left')
plt.show()
您可以使用groupby.sum()
求和。
df3 = df2.groupby('DATE').sum()
df3.plot()
plt.show()