ForLoop使用Pandas创建具有分支数据的数据集

2024-10-02 00:43:42 发布

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

我想用这个结构创建一个数据集enter image description here

这就像创建一个层次结构数据集。最终的数据集将有100 x 2 x 3 x 25=15000行数据。我在用Python和熊猫 (变量1有100个值。在变量1的每个值中,变量2有两个变量。在2号变量的每个值中,3号变量中有3个变量,依此类推)

我曾尝试对变量4使用ForLoop,但我不知道如何让更高级别的变量交替地填充数据集。你知道吗

variable4= range(0,25)

for i in range (0,25):
    dataset.iloc[i,4] = variable4[i]
    dataset.iloc[i,3] = 'Var3value'

请就如何制作这种结构给我一些建议。你知道吗

p/s:欢迎使用并行计算来加快计算时间!你知道吗


Tags: 数据infor层次结构时间range结构dataset
2条回答

可以使用^{},然后调用DataFrame构造函数:

a = range(100)
b = list('ab')
c = list('ABC')
d = list(range(100, 125))

mux = pd.MultiIndex.from_product([a,b,c,d], names=list('xyuz'))

df = pd.DataFrame({'col':range(15000)}, index=mux)
print (df)
              col
x  y u z         
0  a A 100      0
       101      1
       102      2
       103      3
       104      4
       105      5
       106      6
...
...

可以使用嵌套for循环强制执行此操作。有更有效的方法来做到这一点,但对于数据大小这应该是罚款。你知道吗

df = of.DataFrame(columns=['col1', 'col2', 'col3', 'col4'])
for i in range(100):
    for j in range(2):
        for k in range(5):
            for l in range(10):
                df.append([i, j, k, l], columns=['col1', 'col2', 'col3', 'col4'])

你可以用itertools.产品()如果要省略for循环。这使它更有效率。如果你想用一个步骤来制作数据帧。创建二维列表/数组和。生成数据帧。你知道吗

相关问题 更多 >

    热门问题