Ручка Матрица с Питоном и Пандами - PullRequest
0 голосов
/ 04 июня 2019

У меня есть файл со связанными данными каждые два столбца (в этом примере это всего 3, но может быть больше), в файле с разделителями табуляции:

Names   SampleA   Names   SampleB   Names   SamplesC
Name1      5      Name3      7      Name1         8
Name2      9      Name2      1      Name2         2
Name4      4      Name4      8      Name3         8
                                    NameX         10

И так далее, что я хочу, этоиметь один столбец со столбцами Имена с не избыточными данными (Имена), а в данном случае 3 столбца с образцами;в тех примерах, которые не являются значениями для имени x, будут заполнены 0:

Names     SampleA     SampleB    SampleC
Name1         5           0        8
Name2         9           1        2
Name3         0           7        8
Name4         4           8        0
NameX         0           0        10

Как я могу подойти к этой матрице с пандами ???, я просто пробовал с R и Perl, но я думаю, будетбыть проще с Python, используя Pandas, я думаю, что это будет лучший способ решить !!!

Большое спасибо !!!!

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете попробовать concat по группе из двух столбцов и сумме:

new_df = pd.concat((df.iloc[:, i:i+2]
                      .set_index('Names')
                      .dropna(how='all') 
                    for i in range(0,len(df.columns),2)),
                   sort=False)
new_df.sum(level=0)

Вывод (вы можете сбросить индекс, если хотите):

    SampleA     SampleB     SampleC
Names           
Name1   5.0     0.0     8.0
Name2   9.0     1.0     2.0
Name4   4.0     8.0     0.0
Name3   0.0     7.0     8.0
NameX   0.0     0.0     10.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...