首先,我使用整数而不是文本重新创建了您的数据。我还更改了数量,以便可以更轻松地理解问题。
d = {1: [20, 'NYC', 1], 2: [30, 'NYC', 2], 3: [5, 'SF', 3],4: [300, 'LA', 1], 5: [30, 'LA', 2], 6: [100, 'SF', 3]}columns=['Price', 'City', 'Quantity'] # create dataframe and rename columnsdf = pd.Dataframe.from_dict(data=d, orient='index').sort_index()df.columns = columns>>> df Price City Quantity1 20 NYC 12 30 NYC 23 5 SF 34 300 LA 15 30 LA 26 100 SF 3
我通过使用嵌套列表理解结构创建了一个新的Dataframe。
df_new = pd.Dataframe([df.ix[idx] for idx in df.index for _ in range(df.ix[idx]['Quantity'])]).reset_index(drop=True)>>> df_new Price City Quantity0 20 NYC 11 30 NYC 22 30 NYC 23 5 SF 34 5 SF 35 5 SF 36 300 LA 17 30 LA 28 30 LA 29 100 SF 310 100 SF 311 100 SF 3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)