I'm trying to run a script from the django shell to bulkcreate a database from a csv. I'm not sure if my pandas is wrong or my django model is to blame. I'm using Python3 and I'm not sure if that affects things either. I'm getting pretty lost in the django docs
I want to import this csv from kaggle: https://www.kaggle.com/weil41/flights/data
script:
import pandas as pd
from .models import Flight
data = pd.read_csv('data/Flights.csv', sep=',')
# year,month,day,dep_time,dep_delay,arr_time,arr_delay,cancelled,
# carrier,tailnum,flight,origin,dest,air_time,distance,hour,min
flights = [
Flight(
year = data.ix[row]['year'],
month = data.ix[row]['month'],
day = data.ix[row]['day'],
dep_time = data.ix[row]['dep_time'],
dep_delay = data.ix[row]['dep_delay'],
arr_time = data.ix[row]['arr_time'],
arr_delay = data.ix[row]['arr_delay'],
cancelled = data.ix[row]['cancelled'],
carrier = data.ix[row]['carrier'],
tailnum = data.ix[row]['tailnum'],
flight = data.ix[row]['flight'],
origin = data.ix[row]['origin'],
dest = data.ix[row]['dest'],
air_time = data.ix[row]['air_time'],
distance = data.ix[row]['distance'],
hour = data.ix[row]['hour'],
min = data.ix[row]['min'],
)
for row in data
]
Flight.objects.bulk_create(flights)
models.py
from django.db import models
# year,month,day,dep_time,dep_delay,arr_time,arr_delay,cancelled,
# carrier,tailnum,flight,origin,dest,air_time,distance,hour,min
class Flight(models.Model):
year = models.CharField(max_length=100, default='')
month = models.CharField(max_length=100, default='')
day = models.CharField(max_length=100, default='')
dep_time = models.CharField(max_length=100, default='')
arr_time = models.CharField(max_length=100, default='')
arr_delay = models.CharField(max_length=100, default='')
cancelled = models.CharField(max_length=100, default='')
carrier = models.CharField(max_length=100, default='')
tailnum = models.CharField(max_length=100, default='')
flight = models.CharField(max_length=100, default='')
origin = models.CharField(max_length=100, default='')
dest = models.CharField(max_length=100, default='')
air_time = models.CharField(max_length=100, default='')
distance = models.CharField(max_length=100, default='')
hour = models.CharField(max_length=100, default='')
min = models.CharField(max_length=100, default='')
def __str__(self):
return f'{self.flight} {self.dest} {self.year} {self.month} {self.day}'
The error I get is KeyError: "'name' not in globals"?
Error message:
exec(open('calendarapp/get_data.py').read()) Traceback (most recent call last): File "", line 1, in File "", line 2, in KeyError: "'name' not in globals"