0

在执行这个...

 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)

如何在 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 回答