Панды: проблема с добавлением данных в панду - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть набор видео в разных папках.Каждый раз, когда выбирается видео, я хочу сохранить некоторые свойства этого видеофайла, такие как имя видео, его каталог и количество кадров в CSV-файле.Для этого я использую pandas dataframe, создавая отдельный CSV-файл для каждого видео.что-то вроде этого:

import pandas as pd
import os

listOfLabels = pd.DataFrame([])
listOfLabels.append(pd.DataFrame({'video name': os.path.basename(path),
                                  'video path': os.path.dirname(path),
                                  'Number of frames': totalFrameNumber}, 
                                   index=[0]), ignore_index=True)
dirName = 'C:/Users/bert/PycharmProjects/csvFiles'
fileName = os.path.splitext(os.path.basename(path))[0]
fileNameSuffix = 'csv'
csvPathAndName = os.path.join(dirName, fileName + '.' + fileNameSuffix)
listOfLabels.to_csv(csvPathAndName)

, где path - это путь к видеофайлу, а totalFrameNumber - это количество кадров в видео.Я знаю, что dirName, fileName, totalFrameNumber, имя видео и путь к видео все существуют и являются правильными.Проблема в том, что ничего не добавляется в список listOfLabels, и хотя файл csv создан, он пуст.У меня вопрос, что я делаю неправильно, когда добавляю данные в listOfLabels.

1 Ответ

0 голосов
/ 10 февраля 2019

.append() не изменяет исходный фрейм данных на месте, он возвращает новый фрейм данных с добавленным фреймом данных, ну, в добавлении.

Это должно быть

listOfLabels = listOfLabels.append(pd.DataFrame({
    'video name': os.path.basename(path),
    'video path': os.path.dirname(path),
    'Number of frames': totalFrameNumber}, 
    index=[0]), ignore_index=True)

вы можете игнорировать новый отступ, первая строка стала очень длинной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...