2017-05-05 1 views
1

Ich habe ein Dataframe (doc2), die im Wesentlichen wie folgt aussieht:Pandas - Merge von Datenrahmen mit einer Reihe Wert

Index  AgeGroups  Factor Cancer 
    0  0_5 wo-statin Yes 
    1  6_10 wo-statin Yes 
    2  11_15 wo-statin Yes 
    3  16_20 wo-statin Yes 
    4  21_25 wo-statin Yes 
    5  26_30 wo-statin Yes 
    6  31_35 wo-statin Yes 
    7  36_40 wo-statin Yes 
    8  41_45 wo-statin Yes 
    9  46_50 wo-statin Yes 
    10  51_55 wo-statin Yes 
    11  56_60 wo-statin Yes 
    12  61_65 wo-statin Yes 
    13  66_70 wo-statin Yes 
    14  71_75 wo-statin Yes 
    15  76_80 wo-statin Yes 
    16  81_85 wo-statin Yes 
    17  86_90 wo-statin Yes 
    18  91_95 wo-statin Yes 
    19 96_100 wo-statin Yes 

und eine Reihe (frame_concat):

Index   0 
0_5   0 
6_10   0 
11_15   0 
16_20   2 
21_25   1 
26_30   4 
31_35   1 
36_40   2 
41_45   4 
46_50   5 
51_55   5 
56_60   2 
61_65   3 
66_70   3 
71_75   2 
76_80   0 
81_85   0 
86_90   0 
91_95   0 
96_100  0 

Nun, im Grunde mag ich füge beide (doc2, frame_concat) so zusammen, dass (AgeGroups from doc2 = index from frame_concat) Und vielleicht eine neue Spalte es aufrufen kann Frequency, die Werte enthält

0 
0 
0 
0 
2 
1 
4 
1 
2 
4 
5 
5 
2 
3 
3 
2 
0 
0 
0 
0 
0 

Erwartung wie dies ein Ergebnis als Ganzes zu erhalten:

Index  AgeGroups  Factor Cancer Frequency 
     0  0_5 wo-statin Yes 0 
     1  6_10 wo-statin Yes 0 
     2  11_15 wo-statin Yes 0 
     3  16_20 wo-statin Yes 2 
     4  21_25 wo-statin Yes 1 
     5  26_30 wo-statin Yes 4 
     6  31_35 wo-statin Yes 1 
     7  36_40 wo-statin Yes 2 
     8  41_45 wo-statin Yes 4 
     9  46_50 wo-statin Yes 5 
     10  51_55 wo-statin Yes 5 
     11  56_60 wo-statin Yes 2 
     12  61_65 wo-statin Yes 3 
     13  66_70 wo-statin Yes 3 
     14  71_75 wo-statin Yes 2 
     15  76_80 wo-statin Yes 0 
     16  81_85 wo-statin Yes 0 
     17  86_90 wo-statin Yes 0 
     18  91_95 wo-statin Yes 0 
     19 96_100 wo-statin Yes 0 

Ich bin dankbar für jede Hilfe zur Verfügung gestellt :). Vielen Dank

Antwort

1

Try this:

In [170]: doc2.merge(frame_concat.to_frame('Frequency'), left_on='AgeGroups', 
        right_index=True, how='left') 
Out[170]: 
     AgeGroups  Factor Cancer Frequency 
Index 
0   0_5 wo-statin Yes   0 
1   6_10 wo-statin Yes   0 
2   11_15 wo-statin Yes   0 
3   16_20 wo-statin Yes   2 
4   21_25 wo-statin Yes   1 
5   26_30 wo-statin Yes   4 
6   31_35 wo-statin Yes   1 
7   36_40 wo-statin Yes   2 
8   41_45 wo-statin Yes   4 
9   46_50 wo-statin Yes   5 
10  51_55 wo-statin Yes   5 
11  56_60 wo-statin Yes   2 
12  61_65 wo-statin Yes   3 
13  66_70 wo-statin Yes   3 
14  71_75 wo-statin Yes   2 
15  76_80 wo-statin Yes   0 
16  81_85 wo-statin Yes   0 
17  86_90 wo-statin Yes   0 
18  91_95 wo-statin Yes   0 
19  96_100 wo-statin Yes   0 
+0

MaxU, danke zuerst für die Antwort. Für die erste Option gab es mir InvalidIndexError: Reindexing nur gültig mit einzigartig bewerteten Index-Objekten und für die zweite Option gibt es mir TypeError: 'numpy.int64' Objekt nicht aufrufbar. Es tut mir leid :) –

+0

@Aceraceae, was ist die Ausgabe von 'type (frame_concat)' und 'frame_concat.dtypes; doc2.dtypes' – MaxU

+0

type (frame_concat): pandas.core.series.Series; type (frame_concat.dtypes): numpy.dtype und type (doc2.dtypes): pandas.core.series.Series. Vielen Dank für Ihre Zeit –

0

was ist einfach?

doc2['Frequency'] = frame_concat 
Verwandte Themen