如何在Python中的for循环中从np.array创建 Dataframe

ylamdve6  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(126)
import numpy as np
import pandas as pd

all_cases= np.array([])
for i in range(1, 4):
    subSoil_array= [i, 2*i, 3*i]
    case_i=np.append(subSoil_array, 100*i) 
    print(case_i)
    #print (all_cases)

我需要从上面的for循环创建一个 Dataframe (3行4列)。第一行应该是1 2 3 100,最后一行:三六九三百
我试了几句台词。没成功。有什么建议吗?

fcg9iug3

fcg9iug31#

numpy中,你不会使用循环,而是使用向量代码进行广播。
在您的情况下:

arr = np.arange(1, 4)[:,None]*np.array([1, 2, 3, 100])

输出:

array([[  1,   2,   3, 100],
       [  2,   4,   6, 200],
       [  3,   6,   9, 300]])
使用循环

使用列表收集值和vstack

l = []
for i in range(1, 4):
    subSoil_array= [i, 2*i, 3*i]
    l.append(np.r_[subSoil_array, 100*i]) 

all_cases = np.vstack(l)

输出:

array([[  1,   2,   3, 100],
       [  2,   4,   6, 200],
       [  3,   6,   9, 300]])

相关问题