首页 > 解决方案 > 如何使用for循环在pandas df中逐一添加列

问题描述

我正在使用 for 循环。我将在循环内进行一些操作。The result would be an numpy array. 现在我只想将每个 for 循环值的 numpy 数组存储在 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 

它一次又一次地覆盖该列,并生成result_array与 df 合并的最后一个计算值。但我要求每个result_array人都与 df 加入/合并。

标签: pythonpython-3.xpandasnumpy

解决方案


它正常为我工作..

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

在此处输入图像描述

唯一可能导致这种情况的是创建 result_array 的函数中的一些错误。该功能似乎没有正常运行。你能详细说明那个功能是什么吗?


推荐阅读