gpt4 book ai didi

python - 在 for 循环中附加来自 json 文件的数据帧

转载 作者:太空宇宙 更新时间:2023-11-03 20:36:43 29 4
gpt4 key购买 nike

我正在尝试迭代文件夹中的 json 文件并将它们全部附加到一个 pandas 数据框中。

如果我说

import pandas as pd
import numpy as np
import json
from pandas.io.json import json_normalize
import os


directory_in_str = 'building_data'
directory = os.fsencode(directory_in_str)

df_all = pd.DataFrame()
with open("building_data/rooms.json") as file:
data = json.load(file)
df = json_normalize(data['rooms'])
df_y.append(df, ignore_index=True)

我得到一个数据框,其中包含一个文件中的数据。如果我把这个想法变成一个for循环,我已经尝试过了

import pandas as pd
import numpy as np
import json
from pandas.io.json import json_normalize
import os

directory_in_str = 'building_data'
directory = os.fsencode(directory_in_str)

df_all = pd.DataFrame()
for file in os.listdir(directory):
with open(directory_in_str+'/'+filename) as file:
data = json.load(file)
df = json_normalize(data['rooms'])
df_all.append(df, ignore_index=True)

print(df_all)

这将返回一个空数据帧。有谁知道为什么会发生这种情况?如果我在附加之前打印 df ,它会打印正确的值,所以我不确定为什么它不附加。

谢谢!

最佳答案

我会尝试像这样加入它们,而不是附加下一个 DataFrame:

if df_all.empty:
df_all = df
else:
df_all = df_all.join(df)

连接 DataFrame 时,您可以指定应连接的内容 - 索引或特定(键)列,以及连接方式(默认选项类似于附加 - '左')。

这里有关于 pandas.DataFrame.join 的文档.

关于python - 在 for 循环中附加来自 json 文件的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118215/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com