Die Folge sind zwei Reihen von meinem unmarkierten-Datensatz, eine kleine Untergruppe:Wie man beschriftete Werte von Spalten in einen Pandas-Datenrahmen parst (einige Spaltenwerte fehlen)?
random1 147 sub1 95 34 dewdfa3 15000 -1238 SBAASBAQSBARSBATSBAUSBAXBELAAX AAA:COL:UVTWUVWDUWDUWDWW BBB:COL:F CCC:COL:GTATGTCA DDD:COL:K20 EEE:COL:54T GGG:COL:-30.5 HHH:COL:000.1 III:COL:2 JJJ:COL:0
random2 123 sub1 996 12 kwnc239 10027 144 LBPRLBPSLBRDLBSDLBSLLBWB AAA:COL:UWTTUTUVVUWWUUU BBB:COL:F DDD:COL:CACGTCGG EEE:COL:K19 FFF:COL:HCC16 GGG:COL:873 III:COL:-77 JJJ:COL:0 KKK:COL:0 LLL:COL:1 MMM:COL:212
Die ersten neun Spalten sind in der gesamten Datenmenge konsistent und beschriftet werden.
Mein Problem ist mit den folgenden Spalten. Jeder Wert in dieser Zeile wird dann zuerst mit dem Spaltenwert, z.B. AAA:COL:UVTWUVWDUWDUWDWW
ist Spalte AAA
, BBB:COL:F
Spalte BBB
usw.
jedoch (1) jede Reihe nicht über die gleiche Anzahl von Spalten und (2) einige Spalten „fehlende“ sind. Die erste Zeile fehlt Spalte FFF
, die zweite Zeile überspringt Spalte CCC
und .
Beachten Sie auch, dass die erste Zeile bei Spalte JJJ
stoppt, während die zweite Spalte bei Spalte MMM
stoppt.
Wie würde man 9 + 13 Spalten eines Datenrahmens zuordnen und diese Werte so analysieren, dass, wenn ein column:value
Paar nicht existiert, diese Spalte einen NaN
Wert hätte.
Würde so etwas wie pandas.read_table()
die Funktionalität dafür haben?
Dies ist die "richtige" Format für die erste Reihe:
random int sub int2 int3 string1 int4 int5 string2 AAA BBB CCC DDD EEE FFF GGG .... MMM
random1 147 sub1 95 34 dewdfa3 15000 -1238 SBAASBAQSBARSBATSBAUSBAXBELAAX UVTWUVWDUWDUWDWW F DFADFADFA K20 54T 'NaN' -30.5 ....'NaN'
Verwandte (und offen) Frage hier: How to import unlabeled and missing columns into a pandas dataframe?
Ich sehe ein "III: A: 2". Erkläre, was das ist. – piRSquared
@piRSquared Spalte I (d. H. Großbuchstabe "i"), kommt nach Spalte H und vor Spalte J – ShanZhengYang
Was ich meinte war, dass "III: A: 2" inkonsistent ist. Jeder andere Eintrag hat ein '': COL:' 'darin, außer' 'III: A: 2'' und' 'HHH: B: 000.1''. Sie haben in Ihrem Beitrag nicht erklärt, wie diese interpretiert werden sollten. – piRSquared