首页 > 解决方案 > 熊猫:将数据附加到熊猫数据框中的问题

问题描述

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

标签: pythonpandasdataframeappend

解决方案


.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)

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


推荐阅读