首页 > 解决方案 > Python重塑数据框

问题描述

我在重塑我的数据框时遇到问题,其中包含某人的购物历史。

d = {'0': ["cars", "clothes","food"], '1': ["electronics", "food","food"]} df = pd.DataFrame(data=d)

现在我想制作新的数据框,其中每一行包含最后一个感兴趣的类别和新的一个,所以一个 2 列的数据框看起来像这样:

d = {'0': ["cars", "clothes"],'1':["clothes","food"] '2': ["electronics", "food"],'3':["food","food"]} df = pd.DataFrame(data=d)

我可以用 for 循环来做到这一点,但由于我有一个大数据集,这需要很长时间。有没有更快的方法来做到这一点?

`

#create pairs from each path
totalArr = list()
for pa in dataset['channel']:
   newArr = list()
    for ind,chan in enumerate(pa):
        maxlen = len(pa)
        if(ind < maxlen-1):
            newArr.append([pa[ind],pa[ind+1]])
    totalArr.append(newArr)

fromToDf = pd.DataFrame(columns=['from','to'])

for a in totalArr:
    for b in a:
        fromToDf= fromToDf.append(pd.DataFrame(data={'from':[str(b[0])],'to':[str(b[1])]}))

`

标签: pythonpandasdataframereshape

解决方案


推荐阅读