我在不同的文件夹中有一组视频。每次选择视频时,我都想保存该视频文件的某些属性,例如视频名称,其目录以及csv文件中的帧数。为此,我使用pandas数据框,为每个视频创建一个单独的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中时,我做错了什么。
答案 0 :(得分:2)
.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)
您可以忽略新的缩进,第一行真的很长。