【问题标题】:Structuring a dataframe in Python在 Python 中构建数据框
【发布时间】:2020-11-04 02:37:11
【问题描述】:

我正在从我正在使用的 api 创建一个数据框。我想将其导出为 csv。到目前为止的数据框结构是:

         Lap 1     Lap 2     Lap 3     Lap 4     Lap 5    
driver1  1:34.231  1:34.231  1:34.231  1:34.231  1:34.231
driver2  1:34.231  1:34.231  1:34.231  1:34.231  1:34.231 
driver3  1:34.231  1:34.231  1:34.231  1:34.231  1:34.231   

圈数达到 64。车手人数为 20。 当我将其导出为 csv 然后导入时。我明白了:

    Unnamed:0  Lap 1     Lap 2     Lap 3     Lap 4
0   driver1    1:34.231  1:34.231  1:34.231  1:34.231
1   driver2    1:34.231  1:34.231  1:34.231  1:34.231
2   driver3    1:34.231  1:34.231  1:34.231  1:34.231

如果我朝着正确的方向前进,只需要一些帮助。

到目前为止我写的代码:

def arr_lap_times(driverId):
    # Get JSON from API
    url = 'http://ergast.com/api/f1/2020/last/drivers/' + driverId +'/laps.json?limit=63'
    data = requests.get(url).json()

    try:
        # Get maximum of laps the driver did
        lap_num = len(data['MRData']['RaceTable']['Races'][0]['Laps'])
        lap = data['MRData']['RaceTable']['Races'][0]['Laps']
        lap_times = []

        # Adding all lap times into an array
        for laps in range(lap_num):
            # Get time of lap
            timing = lap[laps]['Timings'][0]['time']
            # Convert string into datetime
            # Add lap times into array
            lap_times.append(timing)
        
        return lap_times
    
    except IndexError:     
        #print(driverId + " didn't particpate in this race")
        return []

获取 2020 赛季的车手名单

url = 'http://ergast.com/api/f1/2020/drivers.json'
data = requests.get(url).json()

driver_detail = data['MRData']['DriverTable']['Drivers']
num_of_drivers = len(driver_detail)

driverId_arr = []

for driver in range(num_of_drivers):
    driverId_arr.append(driver_detail[driver]['driverId'])

然后我把它放进字典里

driver_dict = {}
for driver in driverId_arr:
    lap_times = arr_lap_times(driver)
   driver_dict.update({driver: lap_times})

然后我将字典转换成数据框:

df = pd.DataFrame.from_dict(driver_dict, orient='index')

【问题讨论】:

  • 您要处理的是pandas 在读/写时如何处理索引。您能否包含用于编写然后读取数据帧的完整命令?

标签: python dataframe export-to-csv


【解决方案1】:

当您阅读 .csv' back in as a DataFrame` 时,只需指定您的索引列:

file = pd.read_csv('filename.csv', index_col=0)

这告诉pandas 这个.csv 中的索引为0 的列应该被视为索引。

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多