Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 添加一个';文件路径';列到数据帧_Python_Pandas_Yolo - Fatal编程技术网

Python 添加一个';文件路径';列到数据帧

Python 添加一个';文件路径';列到数据帧,python,pandas,yolo,Python,Pandas,Yolo,我有一个大约100个JSON的列表,这些JSON正在被读取、过滤并附加到一个数据帧中: import pandas as pd import glob dfOutput = pd.DataFrame() for filepath in glob.iglob('/Users/vinceparis/dev/dfyb/dataset/cucumber_test/out/*.json'): dfRead = pd.read_json(filepath, orient='columns')

我有一个大约100个JSON的列表,这些JSON正在被读取、过滤并附加到一个数据帧中:

import pandas as pd
import glob

dfOutput = pd.DataFrame()
for filepath in glob.iglob('/Users/vinceparis/dev/dfyb/dataset/cucumber_test/out/*.json'):
    dfRead = pd.read_json(filepath, orient='columns')
    dfFiltered = dfRead.filter(items=['label', 'confidence'])
    dfOutput = dfOutput.append(dfFiltered)
print(dfOutput)
dfOutput = dfOutput.to_csv('/Users/vinceparis/dev/dfyb/growlog2.csv')
输出将是一个漂亮的单数据帧

         label  confidence
0     seedling        0.33
0     cucumber        0.35
1   cotyledons        0.38
0     seedling        0.36
1   cotyledons        0.31
2      flowers        0.38
3      flowers        0.34
0     cucumber        0.48
..         ...         ...
0   cotyledons        0.41
1   cotyledons        0.42
0     cucumber        0.36
0   cotyledons        0.43
1   cotyledons        0.34
0      flowers        0.36
1      flowers        0.40
如何为“filename”添加一列,其中包括注入数据帧的原始json的路径?

在循环中使用
concat
而不是
append
通过从组件数据帧的iterable构建组合数据帧,可以使用和:

fps = glob.iglob('/Users/vinceparis/dev/dfyb/dataset/cucumber_test/out/*.json')
cols = ['label', 'confidence']

dfs = (pd.read_json(fp, orient='columns').filter(items=cols).assign(file=fp) for fp in fps)

dfOutput = pd.concat(dfs, ignore_index=True)