2016-11-17 149 views
-1

我一直在使用matplotlib很長一段時間,但它是偉大的,但是,我想切換到熊貓,我的第一次嘗試沒有那麼好。使用熊貓解析CSV文件

我的數據集是這樣的:

sam,123,184,2.6,543 
winter,124,284,2.6,541 
summer,178,384,2.6,542 
summer,165,484,2.6,544 
winter,178,584,2.6,545 
sam,112,684,2.6,546 
zack,145,784,2.6,547 
mike,110,984,2.6,548 
etc..... 

我首先要搜索的CSV名爲邁克任何東西,創建自己的列表。現在有了這份清單,我希望能夠做一些數學例如添加sam[3] + winter[4]sam[1]/10。最後一部分是將其列成彼此的專欄。

通過這個頁面

http://pandas.pydata.org/pandas-docs/stable/io.html#io-read-csv-table 

我看到的唯一的事情就是去如果我有一列標題,但是,我沒有任何頭。我只知道我想要的價值觀中的位置。

所以我的問題是:

  1. 如何創建一批名單中的每一行(SAM,冬季,夏季)
  2. 是這種方法有效的,如果我的CSV有幾百萬個數據點的?
  3. 我可以使用matplotlib繪製熊貓數據框圖嗎?

即:

fig1 = plt.figure(figsize= (10,10)) 
ax = fig1.add_subplot(211) 
ax.plot(mike[1], winter[3], label='Mike vs Winter speed', color = 'red') 

回答

1

可以讀取一個CSV沒有頭:

data=pd.read_csv(filepath, header=None) 

列從0 選擇和過濾開始編號:

all_summers = data[data[0]=='summer'] 

如果你想做一些操作分組第一列,它看起來就像這樣:

data.groupby(0).sum() 
data.groupby(0).count() 
... 

選擇一行分組後:

sums = data.groupby(0).sum() 
sums.loc['sam'] 

繪製例如:

sums.plot() 
import matplotlib.pyplot as plt 
plt.show() 

瞭解更多詳細的策劃,請參閱:http://pandas.pydata.org/pandas-docs/version/0.18.1/visualization.html

+0

我有點困惑。在這裏的什麼地方展示瞭如何基於第一列值創建列表?例如一個包含夏天的列表? –

+0

你可以像這樣''data [data [0] =='summer']''''' – burhan

+0

'''''''''''''''''''' ] print(Sam),我得到的全部是預期的10個字段,看到15個跳過的行3 –

-1
df = pd.read_csv(filepath, header=None) 
mike = df[df[0]=='mike'].values.tolist() 
winter = df[df[0]=='winter'].values.tolist() 

然後你可以繪製這些列表,因爲你想要以上

fig1 = plt.figure(figsize= (10,10)) 

ax = fig1.add_subplot(211) 

ax.plot(mike, winter, label='Mike vs Winter speed', color = 'red') 
+0

我也收到預期的10個字段的錯誤,看到15跳過第3行等等。 –

+0

這很可能是因爲你有不同長度的列表。嘗試比較'len(冬季)''和len(麥克)'' –

+0

是的,他們是不同的。我想我沒有一個真正的CSV文件,因爲我在每個逗號後都有空格? –