如何使用for循环在pandas df中一个接一个地添加列

时间:2019-04-03 13:53:33

标签: python python-3.x pandas numpy

我正在使用for循环。我将在循环内进行一些操作。 The result would be an numpy array。现在,我只想将numpy数组存储在每个for循环值的pandas df中。

我的df如下所示

Lt        Lg
-7.0      -7.0
-7.0      -6.9
-7.0      -6.8
.         .
.         .
.         .
.         .
6.9       6.8       
6.9       6.9




df.shape is (19600,2)

代码示例

for i in range(21,25):
  ' do some operations and return below numpy array of length 19600'

  result_array = [0,0,0.2......0.8,0.6] # lenght of array = 19600

  df[i] = result_array 

得出我得到的结果

Lt        Lg      24
-7.0      -7.0    0
-7.0      -6.9    0.2
-7.0      -6.8    0
.         .       .
.         .       .
.         .       .
.         .       .
6.9       6.8     0.8     
6.9       6.9     1

要求

Lt        Lg      21    22    23    24  
-7.0      -7.0    0     0     0     0
-7.0      -6.9    0.2   0     0.4   0.2
-7.0      -6.8    0     0.2   0.6   0
.         .       .     .     .     .
.         .       .     .     .     .
.         .       .     .     .     .  
.         .       .     .     .     .
6.9       6.8     0.8   0     0.6   0.8
6.9       6.9     1     0.4   0.2   1 

它一次又一次地覆盖该列,并生成与df合并的最后一个计算出的result_array。 但是我要求每个result_array都必须与df结合/合并。

1 个答案:

答案 0 :(得分:1)

对我来说正常工作。

import pandas as pd
import numpy as np

df = pd.DataFrame({"Lt":[1,2,3,4],"Lg":[5,6,7,8]})

for i in range(21, 25):
    result_array = np.random.randint(0,10,4)  #Some function
    df[i] = result_array

df

enter image description here

唯一会导致这种情况的是创建result_array的函数中的某些错误。该功能似乎无法正常运行。您能否详细说明该功能是什么?