【发布时间】:2019-11-27 21:12:17
【问题描述】:
我有以下 python 数据框
data={'1':[1,1,1,1],'2':[1,1,1,1],'3':[1,1,1,1]}
df=pd.DataFrame(data)
我需要得到行的总和,这样我的最终输出应该是这样的,
因此,在这个所需的输出中,第二列应包含原始数据框第二列的行总和。很快。
为了得到这个输出,我写了下面的代码,
sum_mat=np.zeros(shape=(3,3))
numOfIteration=3
itr=list(range(0,numOfIteration))
for i in range(0,3):
for j in range(0,3):
while i <= itr[i]:
sum_mat[i,j]+= df.iloc[i,j]
print (sum_mat)
我在这里没有得到输出,因为代码一直在运行(可能是无限循环)。
任何人都可以提出任何建议以获得所需的输出吗?
也许有更有效和更简单的方法来做同样的事情。
谢谢
更新: 我更新for循环如下,
for i in range(0,3):
for j in range(0,3):
while i <= itr[i]:
sum_mat[i,j] = df.iloc[:,0:i].sum(axis=1)
但它给出了以下错误,
sum_mat[i,j] = df.iloc[:,0:i].sum(axis=1)
ValueError: setting an array element with a sequence.
【问题讨论】:
标签: python pandas for-loop while-loop