Как присвоить значения фрейму данных pandas?
Это мой код, я загружаю файл, который содержит несколько столбцов, в столбце состояния нет данных, я присваиваю данные здесь, но получаю ошибку?
def post(self, request, *args, **kwargs):
modelname = request.data['modelname']
serializer = self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)
dataset = Dataset()
file = serializer.validated_data['file']
imported_data = dataset.load(file.read(), format='xlsx')
field_headers = imported_data.headers
for x in imported_data:
'''
uploading xl file with particular data what user mentioned in xl we are looping the xl data
and appending into the database with same fields
'''
model = ModelSchema.objects.get(name=modelname).as_model()
table_name = model._meta.db_table
fields_list = field_headers
fields = [f.name for f in model._meta.fields]
list_difference = [element for element in fields_list if element not in fields]
if list_difference:
return Response({'headers is not same as DB': list_difference})
conn = psycopg2.connect(dbname=settings.DATABASES['default']['NAME'],
user=settings.DATABASES['default']['USER'],
password=settings.DATABASES['default']['PASSWORD'],
port=settings.DATABASES['default']['PORT'],
host=settings.DATABASES['default']['HOST']
)
cur = conn.cursor()
df = pd.read_excel(file, engine='openpyxl')
dff = df.assign(status='newtickets')
print(dff,'sssssssssssssssssss')
# dff.replace(np.NAN, inplace=True)
temp_csv = StringIO()
writer = csv.writer(temp_csv)
writer.writerows(dff.values)
temp_csv.seek(0)
with conn.cursor() as c:
c.copy_from(
file=temp_csv,
table=table_name,
columns=fields_list,
sep=","
)
cur.commit()
print(cur,'ppppppppppppppppppp')
return Response({'sucessfully uploaded your file'}, status=status.HTTP_200_OK)