2017-03-11 1 views
0

Im folgenden Pandas Datenrahmen:Wie kann ich die Werte von zwei Pandas Dataframe zusammenführen, die als gleiche Zeile und Spalte Indizes/Wert?

d1 = pd.read_csv('to_count.mcve.txt', sep='\t') 
d1 = d1.set_index(['pos'], append=True) 

     M1   M2  F1 F2 
    pos       
0 23 A,B,A,C,D A,C,B A D 
1 24 A,B,B,C,B A,B,A B B 
2 28 C,B,C,D,E B,C  E C 

verwendete ich den Code unten etwas Zählen zu tun:

hapX_count = pd.DataFrame() 
hapY_count = pd.DataFrame() 
for index, lines in d1.iterrows(): 
    hap_x = lines['F1'] 
    hap_y = lines['F2'] 
    x_count = lines.apply(lambda x: x.count(hap_x)/2 if len(x) > 5 else x.count(hap_x)) 
    y_count = lines.apply(lambda x: x.count(hap_y)/2 if len(x) > 5 else x.count(hap_y)) 

    hapX_count = hapX_count.append(x_count) 
    hapY_count = hapY_count.append(y_count) 

Ausgang für hapX_count:

print(hapX_count) 

     F1 F2 M1 M2 
(0, 23) 1.0 0.0 1.0 1.0 
(1, 24) 1.0 1.0 1.5 1.0 
(2, 28) 1.0 0.0 0.5 0.0 

Ausgang für hapY_count:

print(hapY_count) 

     F1 F2 M1 M2 
(0, 23) 0.0 1.0 0.5 0.0 
(1, 24) 1.0 1.0 1.5 1.0 
(2, 28) 0.0 1.0 1.0 1.0 

Wie kann ich die Werte (die die gleichen column und row Indizes haben) innerhalb dieses Datenrahmens mit einem Komma kombinieren?

Erwartete Ausgabe wie:

  F1  F2  M1  M2 
(0, 23) 1.0,0.0 0.0,1.0 1.0,0.5 1.0,0.0 
same for other lines... 

Danke,

Antwort

1

Sie könnten die Verkettung in Ihrer for-Schleife voran gehen und tun. Wenn Sie jedoch die Verkettung nach der Tatsache durchführen und sie durch Kommas trennen wollen, dann gehe ich davon aus, dass Sie damit einverstanden sind, dass die Daten zu Strings anstatt zu Floats werden. Wenn dies der Fall ist, und Sie wissen, dass die Spalten und Indizes identisch sind und in der gleichen Reihenfolge, können Sie tun:

+0

Entschuldigung, das funktioniert nicht wie erwartet. Die Werte in den einzelnen Zellen werden zusammengeführt, die unterschiedlichen Zellenwerte werden jedoch mit anderen Zellenwerten zusammengeführt. Ich habe auch versucht, innerhalb der For-Schleife zu verketten, aber kein Glück. – everestial007

Verwandte Themen