[英]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.