【发布时间】:2019-08-13 16:44:45
【问题描述】:
我正在使用 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 超出了轴 1 大小为 5 的范围
谢谢
【问题讨论】:
-
什么是
newdf?它是什么形状?它与df上的索引是什么? -
Nathan,我修改了问题以澄清它,我对 df 执行了其他操作,但是,出于问题的目的,我认为没有必要提供这些细节。上面解释了主要目标。
-
如果您进行我刚才建议的编辑,我的代码不会出错(将
df设为pd.DataFrame并将d.drop更改为df.drop)。 -
您还有问题/疑问还是现在可以使用?
-
@Nathan 我已经编辑了这个问题,由于两个数据框的尺寸,错误上升。但是,问题上newdf的维度需要1000行5列,这就是我得到这个错误的原因,但我一直没能解决。