繁体   English   中英

在pandas DataFrame中添加“文件路径”列

[英]Add a 'filepath' column to a pandas DataFrame

我有100个左右的json列表,这些列表正在读取,过滤并附加到pandas数据框中:

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

如何为“文件名”添加一列,其中将包括注入数据框的原始json的路径?

使用concat而不是在循环中append

您可以通过从组件数据框架的可迭代结构构造一个组合数据框架来使用assign遵循文档中的建议

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM