【发布时间】:2019-07-19 18:53:44
【问题描述】:
我正在尝试遍历文件夹中的 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,它会打印正确的值,所以我不确定它为什么不附加。
谢谢!
【问题讨论】:
-
面临同样的问题。这是因为 append 不能就地工作。
df_all = df_all.append(df, ignore_index=True)将工作。但是,值得注意的是,对于大数据帧来说,这并不是一个省时的解决方案:stackoverflow.com/questions/36489576/…
标签: python pandas dataframe jupyter-notebook