2017-05-17 57 views
0

我試圖繪製隨時間變化的城市銷售增長情況。我有我與熊貓導入CSV文件...繪製CSV中的多行Python

import pandas as pd 
import numpy as np 
import matplotlib as plt  
df = pd.read_csv("filepath.csv") 

在該數據幀的三列,日期(格式M/d/YYYY 0:00:00),訂單價值和城市。

我試圖將每個城市的訂單發生情況作爲一個單獨的線路進行繪製,例如,第一個日期有一個特定城市的訂單,y值爲1,第二個日期爲該訂單的訂單城市,y值將是兩個等。

我還需要代碼來忽略城市的空值。

到目前爲止,我想出了這一點:

style.use('ggplot') 

df.groupby('City').plot(x='Date', y='Weekly Payment') 

plt.title('Title of Chart') 
plt.ylabel('Y Axis') 
plt.xlabel('X Axis') 

plt.show() 

它返回一個錯誤,說是沒有數字要繪製的數據。非常感謝!

編輯:這裏是我想創建的類圖的圖像:

image on imgur

+1

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建[mcve]。 – ImportanceOfBeingErnest

+0

感謝您的反饋!我已經添加了一個鏈接到我希望看到的輸出類型的圖像。 –

回答

0

我相信你所遇到的問題是,你不必相同ammount的所有城市的數據,

爲了將信息繪製在同一圖中,每個圖的數據集的大小必須相同。因此,您需要做的是生成虛擬數據,以填補第二塊圖缺失數據的空白。

至於忽略空城市一個簡單的嘗試和除了包裝應該做到這一點。

+0

嗯,我可以申請哪些虛擬數據,這不會影響報告的準確性?另外,你會在哪裏應用除包裝器以忽略空值? –

+0

您可以嘗試計算在連接兩個相鄰實際數據點的圖上的實際數據和繪圖點之間缺少多少個數據點,如果有意義的話。 至於嘗試和除了,找出哪些行或片段從空城市返回一個錯誤,並將其包裝在try和except語句之間 – vencaslac

+0

您可能要考慮的另一件事是在這裏線圖是否合適。你有沒有考慮過使用條形圖?如果某個城市在給定的日期支付了款項,但是沒有爲另一個城市支付款項,我之前的建議會顯示一張可能誤導的圖表,但條形圖會顯示一個空白區域,這可能更具代表性,儘管我想我正在假設你的用例 – vencaslac