2017-11-27 20 views
-1

私はcsv内にこれらの列を持ち、イギリスとフランスのオレンジを時系列形式でプロットしたいと考えています。python時系列の国データ

イギリスとオレンジを時系列でプロットすることはできますが、英国+フランスのオレンジを時系列でプロットできません。

誰かが私を助けることができますか?

ここで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'] 
+1

これまでの投稿を投稿して、どこにいらっしゃるのか正確に説明できますか? – RuthC

+0

私は助けのためにもう少し情報が必要だと思います。データをプロットするためにどのようなソフトウェアを使用していますか? – nwalton

+0

ありがとうございます - 上記のコードを投稿してください。正しい方法を使用しているかどうかはわかりません。私はdfまたはilocのコードを使用すべきですか? –

答えて

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() 
関連する問題