Gibt es eine Möglichkeit, neue Werte auf einer Datenrahmenspalte basierend auf dem ersten Zeichen der aktuellen Werte abzubilden.Pandas: neue Werte basierend auf dem ersten Zeichen abbilden
Mein aktueller Code:
ncesvars['urbantype'] = np.where(ncesvars['urbantype'].str.startswith('1'), 'city', ncesvars['urbantype'])
ncesvars['urbantype'] = np.where(ncesvars['urbantype'].str.startswith('2'), 'suburban', ncesvars['urbantype'])
ncesvars['urbantype'] = np.where(ncesvars['urbantype'].str.startswith('3'), 'town', ncesvars['urbantype'])
ncesvars['urbantype'] = np.where(ncesvars['urbantype'].str.startswith('4'), 'rural', ncesvars['urbantype'])
Ich dachte an eine Art von dict
und anschließend pd.replace
, war aber nicht sicher, wie das zu tun mit .str.startswith()
danke für die Eingabe. ist der 'df.loc' Teil wichtig, verglichen mit @ ayhans Antwort? – As3adTintin
Ja, weil Sie nur die Zeilen beeinflussen möchten, in denen die Daten Ihren dict Schlüsseln entsprechen, andernfalls überschreiben Sie diese Zeile mit 'NaN' deshalb ist die letzte Reihe unverändert – EdChum
ahhh ok danke! – As3adTintin