数据框将 Numpy 数组的行数添加到数据框

Datframe adding Numpy array as many rows to dataframe

我正在使用 Numpy 计算索姆公式。 我需要一个包含更多详细信息的 datafrale 结果。

我尝试了类似 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,10,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,44000,41000,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() 函数的更多信息