我正在使用for循环对数据帧进行一些修改。我在for循环的每个循环中添加一个新列,但是,我也在循环结束时删除了该列。我想知道是否有可能在每个周期存储此列的值,并创建一个由每个周期生成的每个列组成的新数据框。我正在使用以下代码:
import numpy as np
import pandas as pd
newdf = np.zeros([1000,5])
df = pd.DataFrame(np.random.choice([0.0, 0.05], size=(1000,1000)))
for i in range(0, 10):
df['sum']= df.iloc[:, -1000:].sum(axis=1)
newdf[:,i] = df['sum']
df = df.drop('sum', 1)
但是,出现以下错误:
索引5超出了尺寸5的轴1的范围
谢谢
答案 0 :(得分:2)
发生此问题的原因并非与df
有关,而是因为当i = 5
时,newdf[:, i]
指的是仅包含五列的NumPy数组的第六列。相反,如果您通过newdf
初始化newdf = np.zeros([1000, 10])
,或仅在range(5)
上循环,那么您的代码将运行而不会出错。