慕容森
将列表作为数据框中的值有点尴尬,因此我能想到的解决此问题的一种方法是解压列表并将每个列表存储在其自己的列中,然后使用熔化函数。# recreate your datad = {"id":[111, 222, 333], "rooms": [1,2,2], "bathrooms": [2,3,1], "facilities": [[2, 3, 4],[4, 5, 6],[2, 3, 4]]}df = pd.DataFrame(d)# unpack the listsf0, f1, f2 = [],[],[]for row in df.itertuples(): f0.append(row.facilities[0]) f1.append(row.facilities[1]) f2.append(row.facilities[2]) df["f0"] = f0df["f1"] = f1df["f2"] = f2# melt the dataframedf = pd.melt(df, id_vars=['id', 'rooms', 'bathrooms'], value_vars=["f0", "f1", "f2"], value_name="facilities")# optionally sort the values and remove the "variable" columndf.sort_values(by=['id'], inplace=True)df = df[['id', 'rooms', 'bathrooms', 'facilities']]我认为这应该可以为您提供所需的数据框。 id rooms bathrooms facilities0 111 1 2 23 111 1 2 36 111 1 2 41 222 2 3 44 222 2 3 57 222 2 3 62 333 2 1 25 333 2 1 38 333 2 1 4