首页 > 解决方案 > 在 for 循环之后创建一个 numpy 数组

问题描述

我有这个数据框:

df4=pd.DataFrame({'Date':['2020-05-19'],
                 'A':[153],
                 'B':[139],
                 'C':[165],
                 'D':[165],
                 'E':[123],
                 'F':[135],
                 'G':[137],})

df4['Date']=pd.to_datetime(df4['Date'])
df4 = df4.set_index('Date')

然后我转换了 df 以便使用 numpy

row=df4.to_records()[0]

amount = 10000

我创建了这个 for 循环:

for i in np.arange(1,len(row),1):
    test=amount/row[i] if row[i]<=150 else 0
    print(test)

这是变量的结果test

0
71.94244604316546
0
0
81.30081300813008
74.07407407407408
72.99270072992701

而且我想知道是否有办法将所有结果test转换为 numpy 数组?因此结果应该是这样的:

test = [0,71.94244604316546,0,0,81.30081300813008,74.07407407407408,72.99270072992701]

谢谢

标签: pythonarraysnumpyfor-loop

解决方案


您可以创建list并转换为numpy数组:

import numpy as np
output = []
for i in np.arange(1,len(row),1):
    test=amount/row[i] if row[i]<=150 else 0
    output.append(test)
np.array(output)

推荐阅读