Существует программное обеспечение, которое экспортирует таблицу в следующем примере:

import pandas as pd

s0 = ',,,,Cond1,,,,Cond2,,'.split(',')
s1 = 'Gene name,Description,Anova,FoldChange,Sample1,Sample2,Sample3,Sample4,Sample5,Sample6,Sample7'.split(',')
s2 = 'HK1,Hexokinase,0.05,1.00,1.5,1.0,0.5,1.0,0,0,0'.split(',')

df= pd.DataFrame( data= (s0, s1, s2))

           0            1      2           3        4        5        6  \
0                                               Cond1                     
1  Gene name  Description  Anova  FoldChange  Sample1  Sample2  Sample3   
2        HK1   Hexokinase   0.05        1.00      1.5      1.0      0.5   

         7        8        9       10  
0             Cond2                    
1  Sample4  Sample5  Sample6  Sample7  
2      1.0        0        0        0  
H

Однако организация этой таблицы не является простой и, следовательно, трудно проанализировать условия.

Я хотел бы произвести кадры данных, условия которых соответствуют ему соответственно выборке.

Это должно быть что-то вроде вывода следующего кода:

import pandas as pd

s1 = 'Gene name,Description,Anova,FoldChange,Sample1.Cond1,Sample2.Cond1,Sample3.Cond1,Sample4.Cond1,Sample5.Cond2,Sample6.Cond2,Sample7.Cond2'.split(',')
s2 = 'HK1,Hexokinase,0.05,1.00,1.5,1.0,0.5,1.0,0,0,0'.split(',')

df= pd.DataFrame(data= (s1, s2))

           0            1      2           3              4              5  \
0  Gene name  Description  Anova  FoldChange  Sample1.Cond1  Sample2.Cond1   
1        HK1   Hexokinase   0.05        1.00            1.5            1.0   

               6              7              8              9             10  
0  Sample3.Cond1  Sample4.Cond1  Sample5.Cond2  Sample6.Cond2  Sample7.Cond2  
1            0.5            1.0              0              0              0  
0
Guilherme Reis 20 Дек 2019 в 18:19

1 ответ

Лучший ответ

Введите значения NaN в row 0 с помощью Series.where. Затем заполните их Series.ffill < / а>. Наконец, вы можете использовать {{X4 }}, чтобы соединить обе строки:

df.iloc[0]=  df.iloc[1].str.cat( df.iloc[0]
               .where(df.iloc[0].notnull() & df.iloc[0].ne(''))
               .ffill(),'.' ).fillna(df.iloc[1])

df=df.drop(1).reset_index(drop=True)
print(df)

Вывод:

           0            1      2           3              4              5  \
0  Gene name  Description  Anova  FoldChange  Sample1.Cond1  Sample2.Cond1   
1        HK1   Hexokinase   0.05        1.00            1.5            1.0   

               6              7              8              9             10  
0  Sample3.Cond1  Sample4.Cond1  Sample5.Cond2  Sample6.Cond2  Sample7.Cond2  
1            0.5            1.0              0              0              0
1
ansev 20 Дек 2019 в 15:43