使用基于循环的numpy数组创建数据帧

2024-06-26 02:22:46 发布

您现在位置:Python中文网/ 问答频道 /正文

为了计算统计值,我正在做一个for循环。为此,我将一列中的计算存储在不同的变量(D10、D50和D90)中

然后我将它们存储在一个名为result的数组中

# First created an empty numpy array

result_array = np.array([])

for column in df:
    
    # just computations you can ignore them

    df = df.sort_values('Size')
    
    cumul = df[column].cumsum()
    
    suma_de_frecuencias = df[column].sum()
    
    D10 = sum(cumul < 0.1 * float(suma_de_frecuencias))
    
    D50 = sum(cumul < 0.5 * float(suma_de_frecuencias))
    
    D90 = sum(cumul < 0.9 * float(suma_de_frecuencias))
    
    # List of statistics values i am trying to get
    
    D10 = df['Size'].iloc[D10]
    
    D50 = df['Size'].iloc[D50]
    
    D90 = df['Size'].iloc[D90]

    
    # Storing values in an array

    result = [D10, D50, D90]
    
    # Appending each "result" in "result_array"

    result_array = np.append(result_array, result)

但是当我试图创建一个数据帧时,代码结果是一个错误

dataset = pd.DataFrame(data=result_array[1:,1:],index=result_array[1:,65],column=result_array[0,1:])

它会导致在第40行对数据集进行索引器回溯

说:

索引器:数组的索引太多

IndexError

我想得到的是这样的东西:

"""    
        'D10'  |  'D50'  |  'D90'
   0 |  value  |  value  |  value    <--- the first computated array "result"
   1 |  value  |  value  |  value    <--- the first computated array "result"
   2 |  value  |  value  |  value    <--- the first computated array "result"
   3 |  value  |  value  |  value  
   .
   .
   .

"""

Tags: indfsizevaluedecolumnresultarray
1条回答
网友
1楼 · 发布于 2024-06-26 02:22:46

问题在于对一维数组进行索引

结果_数组是一个简单的(n*1)数组,它不能被索引到更多的列中

尝试附加多维数组,如下所示-

result_array = result_array.reshape(len(result_array)//3,3)

创建数据帧

dataset = pd.DataFrame(data = result_array, columns = ['D10', 'D50', 'D90'])

输出-

请注意,我已经用示例值创建了dataframe

enter image description here

相关问题 更多 >