2013-08-01 33 views
0

在執行此數據...熊貓read_csv和數據框 - 如何使用加載一次

this_file = pd.read_csv(filepath, quotechar='"', error_bad_lines=False, index_col=False) 

...我有沒有問題。數據加載正常(理論上)。但是,利用導入的數據是我掙扎的地方。

在這種特殊情況下,CSV文件中的事件已滿(種族),每行等的結果是這樣的一個事件...

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 50 entries, 0 to 49 
Data columns (total 43 columns): 
race_date    50 non-null values 
track_code    50 non-null values 
race_number    50 non-null values 
... 
dtypes: float64(19), int64(7), object(17) 

如何讀取和使用這些數據數據幀?

我試過......

for race in this_file: 
     print(race) 

,我將返回所有的「字段名。」

這樣做......

for race in this_file.iterrows(): 
     print(race) 

...吐出什麼似乎是每一行的元組(?)。

因爲每場比賽引發多種與其他DataFrames單獨行動,我想獲得能夠利用這一個循環(作爲一個例子)...

race['race_date'] 

我敢肯定,這很簡單,但DataFrame read_csv生成的內容似乎並未遵循「用於數據分析的Python」一書中的示例。謝謝!

編輯

我需要循環的數據幀的比賽(行),從列抓細節與當前的種族和使用該軟件的其他領域這些信息。

所以,我想這個...

for race in this_file.iterrows(): 
     print(race['race_date']) 

,並收到此錯誤...

Traceback (most recent call last): 
    File "C:\RaceTest\build_models.py", line 7, in <module> 
    raceanalysis.build_model(dataset='small') 
    File "C:\RaceTest\raceanalysis\raceanalysis.py", line 70, in build_model 
    print(race['race_date']) 
TypeError: tuple indices must be integers, not str 
+0

目前還不清楚你真的想用這個DataFrame做什麼(看起來它正在被正確讀取,但是它沒有被全部顯示 - 因爲列/行太多) –

+0

我添加了更多的細節..希望現在更清楚。 – TravisVOX

+0

從在線文檔介紹大熊貓:http://pandas.pydata.org/pandas-docs/dev/10min.html – Jeff

回答

0

嘗試

print(this_file[:10]) 

看到第10行。

DataFrame是基於列的,也就是說,每一列都是一個獨立的系列:

race['race_date'][0] # take element 0 of race_date column 

詳情請參閱http://pandas.pydata.org/pandas-docs/stable/indexing.html

+1

或'this_file.head(10)'堅持使用熊貓語法。 –

+0

@RutgerKassies我更喜歡一般的語法特定。請使用'head()'有什麼好處? –

+0

這顯示了像上面那樣的字段,但切成了前十個字段。我只是不瞭解如何獲取數據並利用它。 – TravisVOX