Ved hjelp av .to_numpy () for å kopiere bestemte kolonner fra en rad av Pandaer Dataframe til en annen

stemmer
0

Jeg har en Dataframe som dette:

     UniqueID  CST  WEIGHT  VOLUME  PRODUCTIVITY
0  413-20012    3     123      12          1113
1  413-45365    1     889      75          6748
2  413-21165    8     554      13          4536
3  413-24354    1     387      35          7649
4  413-34658    2     121      88          2468
5  413-36889    4     105      76          3336
6  413-23457    5     355      42          7894
7  413-30089    5     146      10          9112
8  413-41158    5     453      91          4545
9  413-51015    9     654      66          2232

Og jeg har en ordbok for foreldre: barn kartlegginger for UNIQUEID tallet:

parent_child_dict = {
    '413-51015': '413-41158',
    '413-21165': '413-23457',
    '413-45365': '413-41158',
    '413-20012': '413-23457'
}

Det jeg trenger å gjøre er å sløyfe gjennom Dataframe, og erstatte vekt, volum og produktivitets verdier av 'barn' UNIQUEID rad med verdiene fra foreldrenes UNIQUEID rad, hvor resulterer Dataframe ville se slik ut:

     UniqueID  CST  WEIGHT  VOLUME  PRODUCTIVITY
0  413-20012    3     355      42          7894
1  413-45365    1     453      91          4545
2  413-21165    8     355      42          7894
3  413-24354    1     387      35          7649
4  413-34658    2     121      88          2468
5  413-36889    4     105      76          3336
6  413-23457    5     355      42          7894
7  413-30089    5     146      10          9112
8  413-41158    5     453      91          4545
9  413-51015    9     453      91          4545

Jeg har eksperimentert med flere mulige løsninger, og de problemer jeg har er å begrense kopi på en slik måte at UNIQUEID og CST verdier av 'barn' rad er bevart, men de andre verdiene er kopiert.

Det nærmeste jeg har fått er en sløyfe gjennom ordlisten der hver sammenkobling blir matet inn i dette:

df.loc[df['UniqueID'] == '413-51015'] = df.loc[df['UniqueID'] == '413-41158'].to_numpy()

Dette synes å pent erstatte alle verdier fra en rad til en annen.

Alle hjelpe på unntakene eller en bedre løsning samlet ville være svært nyttig. Takk skal du ha.

Publisert på 19/03/2020 klokken 22:01
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more