For循环仅在10次迭代后停止

2024-04-26 11:12:43 发布

您现在位置:Python中文网/ 问答频道 /正文

晚上好,, 我想知道是否有人能为我提供一个问题的见解。我已经编写了一个简单的for循环,但是它在仅仅10次迭代之后就停止了。如果您有任何想法或想法,我们将不胜感激,谢谢。下面是我的代码:

'''

import pandas as pd
import numpy as np

directory1 = pd.read_csv('/media/Thesis_Maps//testing/JM_rev5.csv', header=None, skiprows=[-1], encoding='utf-8')

results = np.zeros((len(directory_DOE), 3) )

for i in directory1:
    x1=directory1.iloc[i,1]
    y1=x1+5
    results[i,0] = y1

Tags: csv代码importnumpypandasforreadas
1条回答
网友
1楼 · 发布于 2024-04-26 11:12:43

在您的示例中pandas迭代列,而不是行

您必须使用directory1.iterrows()(或类似函数)

for index, row in directory1.iterrows():
    results[index, 0] = row[1] + 5

但是你也可以不用迭代来做同样的事情

results[:,0] = directory1[1] + 5

范例

import pandas as pd
import numpy as np
import random

random.seed(1) # random will create always the same values

directory1 = pd.DataFrame(
    [[random.randint(0, 10) for x in range(10)] for x in range(200)],
)

print('shape:', directory1.shape)
print(directory1.head())

#   

results = np.zeros((len(directory1), 3))

for index, row in directory1.iterrows():
    results[index, 0] = row[1] + 5

print(results[:5])

#  -    

results = np.zeros((len(directory1), 3))

results[:,0] = directory1[1] + 5

print(results[:5])

结果

shape: (200, 10)

   0   1  2   3  4  5  6   7   8  9
0  2   9  1   4  1  7  7   7  10  6
1  3   1  7   0  6  6  9   0   7  4
2  3   9  1   5  0  0  0  10   8  0
3  6  10  3   6  0  8  3   7   7  8
4  3   5  3  10  3  7  4   0   6  8

#  -    

[[14.  0.  0.]
 [ 6.  0.  0.]
 [14.  0.  0.]
 [15.  0.  0.]
 [10.  0.  0.]]

#  -    

[[14.  0.  0.]
 [ 6.  0.  0.]
 [14.  0.  0.]
 [15.  0.  0.]
 [10.  0.  0.]]

相关问题 更多 >