如何将JSON中的多维数组转换为Pandas中的独立列

izkcnapc  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(172)

我有一个由嵌套字符串组成的数据库集合。我试图将"状态"列下的内容转换为每个订单ID的单独列,以便跟踪从"订单确认"到"提货确认"所用的时间。字符串如下所示:

我也试过用

xyz_db= db.logisticsOrders -------------------------(DB collection)
df =pd.DataFrame(list(xyz_db.find()))   ------------(JSON to dataframe)

使用归一化:

parse1=pd.json_normalize(df['status'])

它在非嵌套数组的情况下工作正常。但状态为嵌套数组时,输出如下:

用于:

data = df[['orderid','status']]
data =  list(data['status'])

dfy = pd.DataFrame(columns = ['statuscode','statusname','laststatusupdatedon'])

for i in range(0, len(data)):
    result = data[i]
    dfy.loc[i] = [data[i][0],data[i][0],data[i][0],data[i][0]]

它以附加行的形式给出结果,这不是我试图实现的格式
我尝试获得的输出为:

请帮帮忙!!

zfciruhq

zfciruhq1#

我分享你,我用json阅读,也许可以帮助你:
可以使用两个或更多列表

def jsonify(z):
    genr = []
    if z==z and z is not None:
        z = eval(z)
        if type(z) in (dict, list, tuple):
            for dic in z:
                for key, val in dic.items():
                    if key == "name":
                        genr.append(val)

        else:
            return None
    else:
        return None
    return genr
    

top_genr['genres_N']=top_genr['genres'].apply(jsonify)

相关问题