【发布时间】: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