对于txt文件result.txt
,如下所示:
[
{
"image_id": "42041",
"mean_score_prediction": 4.996936075389385
},
{
"image_id": "42039",
"mean_score_prediction": 4.647608995437622
},
{
"image_id": "42044",
"mean_score_prediction": 3.9866196922957897
},
{
"image_id": "42042",
"mean_score_prediction": 3.9691513180732727
},
{
"image_id": "42040",
"mean_score_prediction": 4.303698152303696
}
]
我想将其转换为数据框df
,然后另存为excel result.xlsx
:
print(df)
image_id mean_score_prediction
0 42041 4.996936
1 42039 4.647609
2 42044 3.986620
3 42042 3.969151
4 42040 4.303698
如何在Python中执行此操作?谢谢。
首先,我使用Python读取文件:
filename = 'result.txt'
with open(filename) as f:
data = f.readlines()
print(data)
输出:
['[\n', ' {\n', ' "image_id": "42041",\n', ' "mean_score_prediction": 4.996936075389385\n', ' },\n', ' {\n', ' "image_id": "42039",\n', ' "mean_score_prediction": 4.647608995437622\n', ' },\n', ' {\n', ' "image_id": "42044",\n', ' "mean_score_prediction": 3.9866196922957897\n', ' },\n', ' {\n', ' "image_id": "42042",\n', ' "mean_score_prediction": 3.9691513180732727\n', ' },\n', ' {\n', ' "image_id": "42040",\n', ' "mean_score_prediction": 4.303698152303696\n', ' }\n', ']\n']
答案 0 :(得分:3)
使用:
In [1]: import pandas as pd
In [2]: with open("result.txt", 'r') as f:
...: data = f.read()
...:
In [3]: data
Out[3]: '[\n {\n "image_id": "42041",\n "mean_score_prediction": 4.996936075389385\n },\n {\n "image_id": "42039",\n "mean_score_prediction": 4.647608995437622\n },\n {\n "image_id": "42044",\n "mean_score_prediction": 3.9866196922957897\n },\n {\n "image_id": "42042",\n "mean_score_prediction": 3.9691513180732727\n },\n {\n "image_id": "42040",\n "mean_score_prediction": 4.303698152303696\n }\n]'
In [6]: df = pd.read_json(data)
In [7]: df
Out[7]:
image_id mean_score_prediction
0 42041 4.996936
1 42039 4.647609
2 42044 3.986620
3 42042 3.969151
4 42040 4.303698
答案 1 :(得分:2)
您的文本文件具有json格式,因此如果没有扩展名.json
,也可以使用read_json
:
df = pd.read_json('result.txt')
print (df)
image_id mean_score_prediction
0 42041 4.996936
1 42039 4.647609
2 42044 3.986620
3 42042 3.969151
4 42040 4.303698
最后DataFrame.to_excel
写给excel的邮件:
df.to_excel('result.xlsx', index=False)