0

これを実行すると...

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

...問題ありません。データは正常にロードされます (理論上)。ただ、取り込んだデータの活用が苦戦しています。

この特定のケースでは、CSV ファイルは、行ごとに 1 つのイベントなどのイベント (レース) でいっぱいです。結果は次のようになります...

 <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)

このデータを DataFrame で読み取って使用するにはどうすればよいですか?

私はもう試した...

 for race in this_file:
      print(race)

すべての「フィールド名」を返します。

これをやって...

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

...各行のタプル (?) と思われるものを吐き出します。

各レースは他の DataFrame とのさまざまな個別のアクションをトリガーするため、これをループで利用できるようにしたいと思います (例として)...

 race['race_date']

これは簡単だと思いますが、read_csv が生成する DataFrame は、本「Python for Data Analysis」の例に従っているようには見えません。ありがとうございました!

編集

DataFrame のレース (行) を循環し、現在のレースの列から詳細を取得し、その情報をソフトウェアの他の領域で使用する必要があります。

だから私はこれを試しました...

 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
4

1 に答える 1

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を参照してください。

于 2013-08-01T14:01:15.377 に答える