Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.08.2013
Сообщений: 9

Ищу оптимальный код для решения одной задачи

06.02.2019, 19:42. Показов 1117. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, друзья! У меня есть одна задача с табличными данными, которую я в принципе могу решить и уже трижды решал на python, R и с использованием pandas, однако код у меня выходит какой-то избыточный (индийский ), так как я чайник еще тот ))).
Просто всегда хотелось узнать, как эту задачу можно решить изящно и просто. Нутром чую, что это можно легко сделать, но мозгов не хватает. Если бы кто показал экстра-класс, как это нужно программировать, я был бы очень благодарен!

В общем у меня имеется dataframe с определенными значениями, типа:
 ms04ms06ms07ms46ms62ms70ms05ms09ms15
Strain 1164726154371294146189466237
Strain 21621570154244231155190700235
Strain 31982525154258303128189826237
Strain 4164606154301267200189852237
Strain 52152889134279204119206718235
Strain 61451388144251285146206760221
Strain 7181965154294294182189700237
Strain 81451088144266330155206790237
Strain 9145786144293285155206592221
Strain 101791570154286240146173700235

Так вот, мне нужно сделать следующее:
1. выбрать и отсортироватьуникальные значения в каждом столбце.
2. создать новую таблицу, в которой в качестве столбцов будут использованы эти уникальные значения.
3. используя данные из первой таблицы создать матрицу из бинарного кода, где 1 - соответствие значения, 0 - несоответствие.
Так, для столбца ms04, например, это будет выглядеть так:
 145162164179181198215
Strain 10010000
Strain 20100000
Strain 30000010
Strain 40010000
Strain 50000001
Strain 61000000
Strain 70000100
Strain 81000000
Strain 91000000
Strain 100001000
И так для всей таблицы.
Как бы вы решили эту задачу?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2019, 19:42
Ответы с готовыми решениями:

Какие данные должен вводить пользователя, для решения задачи "Оптимальный выбор инвестиций"?
Всем привет. Имеется задача "Оптимальный выбор инвестиций". Может кто-нибудь подсказать, какие данные должен вводить пользователя, для...

Какие данные должен вводить пользователя, для решения задачи "Оптимальный выбор инвестиций"?
Всем привет. Имеется задача "Оптимальный выбор инвестиций". Может кто-нибудь подсказать, какие данные должен вводить пользователя, для...

Найти более оптимальный способ решения задачи
Вот задача: Имеется две таблицы: 1) Items (Id identity(1,1) int, Name varchar(50)) в которой хранятся составляющие продукты и...

3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
06.02.2019, 19:46
Словари в помощь!
0
0 / 0 / 0
Регистрация: 10.08.2013
Сообщений: 9
06.02.2019, 19:54  [ТС]
А могли бы примерно накидать? А то вот тоже чувствую, что словари бы могли здесь подойти, но блин... не знаю как
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
06.02.2019, 21:33
Никак не могу претендовать на искусство программирования на Питоне (сам учусь). Но как-то так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
##
## Построение матрицы
##
 
def makeMatr(r):
    matr=[]
    n=len(r)
    for i in range(n):
        s=r[i]
        rr=[]
        v=s.split(",")
        for a in v:
            rr+=[int(a)]
        matr+=[rr]
    return matr
 
##
## Уникальные значения i-го столбца
##
 
def uCol(matr,i):
    col={}
    n=len(matr)
    for j in range(n):
        aji=matr[j][i]
        col[aji]=1
    res=[]
    for q in col.keys():
        res+=[q]
    return sorted(res)
 
##
## Построить таблицу, соответствующую i-у столбцу
##
 
def resTabl(matr,i):
    uc=uCol(matr,i)
    n=len(matr)
    res=[]
    for j in range(n):
        rr=[]
        for a in uc:
            if (a in matr[j]):
                rr+=[1]
            else:
                rr+=[0]
        res+=[rr]
    return res
 
##
## Печать таблицы
##
 
def printTabl(tabl):
    n=len(tabl)
    for j in range(n):
        rr=tabl[j]
        m=len(rr)
        for i in range(m):
            print(tabl[j][i],end=' ')
        print("")
       
 
cols="ms04,ms06,ms07,ms46,ms62,ms70,ms05,ms09,ms15"
 
row=[]
row+=["164,726,154,371,294,146,189,466,237"]
row+=["162,1570,154,244,231,155,190,700,235"]
row+=["198,2525,154,258,303,128,189,826,237"]
row+=["164,606,154,301,267,200,189,852,237"]
row+=["215,2889,134,279,204,119,206,718,235"]
row+=["145,1388,144,251,285,146,206,760,221"]
row+=["181,965,154,294,294,182,189,700,237"]
row+=["145,1088,144,266,330,155,206,790,237"]
row+=["145,786,144,293,285,155,206,592,221"]
row+=["179,1570,154,286,240,146,173,700,235"]
 
x=makeMatr(row)
 
n=len(x[0])
for icol in range(n):
    tabl=resTabl(x,icol)
    printTabl(tabl)
    print("")
Результат:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
0 0 1 0 0 0 0 
0 1 0 0 0 0 0 
0 0 0 0 0 1 0 
0 0 1 0 0 0 0 
0 0 0 0 0 0 1 
1 0 0 0 0 0 0 
0 0 0 0 1 0 0 
1 0 0 0 0 0 0 
1 0 0 0 0 0 0 
0 0 0 1 0 0 0 
 
-------------------------------
 
0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 0 
1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 
0 0 0 0 0 1 0 0 0 
0 0 0 1 0 0 0 0 0 
0 0 0 0 1 0 0 0 0 
0 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 
 
-------------------------------
 
0 0 1 
0 0 1 
0 0 1 
0 0 1 
1 0 0 
0 1 0 
0 0 1 
0 1 0 
0 1 0 
0 0 1 
 
-------------------------------
 
0 0 0 0 0 0 0 1 0 1 
1 0 0 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 0 
0 0 0 0 1 0 0 0 0 0 
0 1 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 1 0 0 
0 0 0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 0 0 
0 0 0 0 0 1 0 0 0 0 
 
-------------------------------
 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 0 0 0 1 0 0 
0 0 0 0 0 0 0 1 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
 
-------------------------------
 
0 0 1 0 0 0 
0 0 0 1 0 0 
0 1 0 0 0 0 
0 0 0 0 0 1 
1 0 0 0 0 0 
0 0 1 0 0 0 
0 0 0 0 1 0 
0 0 0 1 0 0 
0 0 0 1 0 0 
0 0 1 0 0 0 
 
-------------------------------
 
0 1 0 0 
0 0 1 0 
0 1 0 0 
0 1 0 0 
0 0 0 1 
0 0 0 1 
0 1 0 0 
0 0 0 1 
0 0 0 1 
1 0 0 0 
 
-------------------------------
 
1 0 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 0 1 0 
0 0 0 0 0 0 0 1 
0 0 0 1 0 0 0 0 
0 0 0 0 1 0 0 0 
0 0 1 0 0 0 0 0 
0 0 0 0 0 1 0 0 
0 1 0 0 0 0 0 0 
0 0 1 0 0 0 0 0 
 
-------------------------------
 
0 0 1 
0 1 0 
0 0 1 
0 0 1 
0 1 0 
1 0 0 
0 0 1 
0 0 1 
1 0 0 
0 1 0 
 
-------------------------------
https://ideone.com/xPhfxR
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2019, 21:33
Помогаю со студенческими работами здесь

Есть ли более простой и оптимальный способ решения данной задачи?
Добрый день! Ситуация следующая: Есть класс Event. public class Event { public string Name { get; set; } public...

Ошибка в учебнике? Пример различных циклов для решения одной задачи
В учебнике по информатике 8 кл. Босовой представлен примеры решения одной задачи с использованием оператора repeat и while. Программа,...

Написать код для решения задачи
Всем привет, помогите решить задачу 4.4.

Написать код для решения задачи
Создать файл из 100 целых чисел, лежащих на отрезке , используя генератор случайных чисел. -Вывести эти числа на экран. -Вывести на...

Написать код, для решения задачи
Сколько бракованной продукции будет при данном оборудовании и сырье? Данная задача описывается следующими предложениями: • Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru