Datframe将Numpy数组添加到数据帧的行数

问题描述

我正在使用Numpy计算somme公式。 我需要更多细节的数据文件结果。

我尝试过类似df_append.append之类的操作来将数据加载到数据框中。

df_cars = pd.DataFrame(data= None,['CarName',"ModelName",'Month','values'])

for(carname in cars):
    modelsnames = getModels(car)
    for(modelname in Models):
        values=np.array(get_values(car,model))
        #values = [1,5,6,9,10,2,7,23,90,102,14]
        new_row={'CarName' :carname,"ModelName": modelname,'Month':np.arange(1,len(index)+1),'value':index}
        df_cars = df_cars.append(new_row,ignore_index=True)

但是numpy值将其保存在一个单元格中(Numpy公式的结果)

示例:

numpy values_BMW_Serie1:[45000,44000,41000,45000,42000]

   Car   Model    Month  value
1  BMW   Serie1   1       [45000,42000]

我需要将每个numpy值保存在一个单元格中

   Car   Model    Month  value
1  BMW   Serie1   1       45000
2  BMW   Serie1   2       44000
3  BMW   Serie1   3       41000
4  BMW   Serie1   4       45000
5  BMW   Serie1   5       42000

解决方法

要解决您的问题,请使用explode()函数:

import numpy as np

df_cars=df_cars.explode('value')

df_cars.index = np.arange(1,len(df_cars) + 1)

df_cars['Month']=df_cars.index

输出:

   Car   Model  Month  value
1  BMW  Serie1      1  45000
2  BMW  Serie1      2  44000
3  BMW  Serie1      3  41000
4  BMW  Serie1      4  45000
5  BMW  Serie1      5  42000

您可以在pandas.DataFrame.explode上了解有关explode()功能的更多信息