Python 添加一个';文件路径';列到数据帧
我有一个大约100个JSON的列表,这些JSON正在被读取、过滤并附加到一个数据帧中: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')
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)