Большое спасибо заранее.Я новичок в Python, и это было немного сложнее, чем я думал.
У меня есть массив [m, n], где m - имена игроков (0-9), а n - годы (AE).Я пометил каждую строку цифрой «1», обозначающей, был ли этот игрок взят в предыдущую командную игру («0», если это не так).Я хотел бы создать несколько групп / классов, учитывая это.
A B C D E
0 1 0 0 1 0
1 1 0 1 0 0
2 0 0 1 1 1
3 1 1 1 1 1
4 0 1 1 0 0
5 0 1 1 1 0
6 1 1 0 1 1
7 0 0 0 0 1
8 1 0 1 1 0
9 1 1 0 1 1
Некоторые изменения в классах: 1. Впервые в команде (а) 2. Все еще в теме и был в течение последних лет (б) 3. Все еще в команде, но включен и выключен (c) 4. Не в команде, но был там раньше (d) 5. Никогда не добирался до команды (e)
Идея состоит в том, чтобы иметь функции для каждого изклассы, которые позже скомпилированы в одну функцию.
Например, вот пример кода для класса a:
class_a=[]
for (i, row) in test.iterrows():
if (test.iloc[i, -1]==1):
if (test.iloc[i, 0:-2].sum(axis=0))==0:
class_a.append('Yes')
Однако пример кода для класса b немного сложнее:
test1=[]
count=0
for (i, row) in test.iterrows():
row = test.iloc[i, 0:-1]
for j in range(0, len(row)-1):
if row[j]>=row[j+1]:
print(i, row[j], row[j+1], 'Yes')
count+=1
print(count)
Когда я печатаю результат i, строки [j] и строки [j + 1], я получаю следующие значения, которые не могут быть правильными.Я делаю вывод, что целочисленное значение строк не является правильным, так как мне не хватает индекса по строкам (значение j).Кажется, что счет в порядке (хотя подсчитывает не то):
0 1 0 Yes
0 0 0 Yes
1 1 0 Yes
1 1 0 Yes
2 0 0 Yes
2 1 1 Yes
3 1 1 Yes
3 1 1 Yes
3 1 1 Yes
4 1 1 Yes
4 1 0 Yes
5 1 1 Yes
5 1 1 Yes
6 1 1 Yes
6 1 0 Yes
7 0 0 Yes
7 0 0 Yes
7 0 0 Yes
8 1 0 Yes
8 1 1 Yes
9 1 1 Yes
9 1 0 Yes
22
Любая помощь и указатели очень ценятся.Я думал об использовании массивов, но это сложно, так как значение находится в каждой строке, а не в столбцах.Я не так думаю?Большое спасибо!