Pandas 将列表中的词典转换为表中的行
我目前有这样一个数据帧:Pandas 将列表中的词典转换为表中的行,pandas,dataframe,Pandas,Dataframe,我目前有这样一个数据帧: eventId listingId currentPrice 103337923 1307675567 ... 103337923 1307675567 ... 103337923 1307675567 ... 我想将“listing”列分解成行。我希望使用字典中的键作为列名,因此理想情况下,我希望数据帧的外观如下所示: eventId listingId currentPrice 103337923 1307675567 ... 103337923 1307675
eventId listingId currentPrice
103337923 1307675567 ...
103337923 1307675567 ...
103337923 1307675567 ...
我想将“listing”列分解成行。我希望使用字典中的键作为列名,因此理想情况下,我希望数据帧的外观如下所示:
eventId listingId currentPrice
103337923 1307675567 ...
103337923 1307675567 ...
103337923 1307675567 ...
这就是我从中得到的结果:print(清单_df.head(3).to _dict())
肯定有更好的方法可以做到这一点。但这是可行的 现在,您可以从上面创建一个新的数据帧:
df2 = pd.DataFrame(columns=df1.columns)
df2_index = 0
for row in df1.iterrows():
one_row = row[1]
for list_value in row[1]["c"]:
one_row["c"] = list_value
df2.loc[df2_index] = one_row
df2_index += 1
输出是您需要的方式:
现在,我们已经将列表扩展为单独的行,您可以进一步将json扩展为列,包括:
df2[list(df2["c"].head(1).tolist()[0].keys())] = df2["c"].apply(
lambda x: pd.Series([x[key] for key in x.keys()]))
希望有帮助 您能否通过打印(df.head(3.to_dict())将问题的前3行添加到问题中?@jezrael刚刚添加!数据似乎还没有完成:(@jezrael发布时间太长了,但是我上传了一张字典的图片。谢谢你的回答。我想我首先要介绍一下我在“列表”中的列表“从列到行,我不完全确定如何做。@YukinoKondo为您的用例更新了答案。这很有帮助!谢谢。@YukinoKondo请向上投票,如果它对您有效,请接受它作为答案。谢谢。”。