熊猫:将数据附加到熊猫数据框的问题

时间:2019-02-10 00:40:08

标签: python pandas dataframe append

我在不同的文件夹中有一组视频。每次选择视频时,我都想保存该视频文件的某些属性,例如视频名称,其目录以及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中时,我做错了什么。

1 个答案:

答案 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)

您可以忽略新的缩进,第一行真的很长。