【发布时间】:2020-11-19 11:19:33
【问题描述】:
我有一些示例代码如下:
import numpy as np
import pandas as pd
x = range(1, 12)
arr1 = np.random.randint(x)
arr2 = np.array(x)
arr3 = np.random.randint(x)
arr4 = np.random.randint(x)
arr5 = np.random.randint(0, 2, 11)
dict_df = {
'arr1' : arr1,
'arr2' : arr2,
'arr3' : arr3,
'arr4' : arr4,
'arr5' : arr5
}
d = pd.DataFrame(dict_df)
num_count = 0
list_of_num = []
for i in d.index:
number = d['arr1'][i]
for num in d['arr5']:
if num == 1:
num_count = 1
number = number
list_of_num.append(number)
elif num == 0:
num_count = 0
print(list_of_num)
我正在尝试构建列表,如果arr5 列中的所有列表前面都带有-1,则它们会被附加到列表中。我从中收到的输出是:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8]
代码的问题是我误用了for 循环,这就是为什么列表重复了这么多次。如何更改代码以使代码不会重复?
【问题讨论】:
-
你能显示预期的输出吗?也许先在你的 rng 中设置一个种子,或者只打印输入数组。你用
num_count做什么?你的意思是使用+=1(在这种情况下你不需要+=0。你是什么意思“前面有-1”?所有的数组都是非负数...
标签: python pandas numpy dataframe for-loop