Nemrég szerettem volna egy DataFrame-et az alsztringje szerint rendezni. Kitaláltam egy egyszerű módszert a rendezés végrehajtására. Egy egyszerű példa segítségével végigvezetem a folyamaton, amelyet szükség szerint bővíthet. Ha valakinek van más megközelítése, kérem ossza meg.

Az első lépés a pandák importálása volt:

import pandas as pd

Ezután létrehozok egy listát, amelyet adatkeretté alakítottam át.

dummy = [[143, 'Francine live in Maryland'], [233, 'Johnny lives in Alabama'], [73, 'Bob lives in Florida']]
df = pd.DataFrame(dummy, columns = ['ID', 'Information'])
df

Ebben a példában az Információ oszlopban lévő állapotnév szerint szeretném rendezni a listát. Ezért ehhez a példához készítettem egy rövid állapotlistát. Valós esetben az összes állapotot felsoroltam volna. Ezután létrehozok egy üres állapotoszlopot. Következő ciklusban átugrom a DataFrame-emet, majd az állapotlistámat. Ha az állapot szerepel az információs oszlopban, akkor frissítem az állapotoszlopot.

states = ['Maryland', 'Alabama', 'Florida', 'Utah']
df['State'] = ''
for index, row in df.iterrows():
    for state in states:
        if state in row['Information']:
            df.at[index, 'State'] = state
            
df

Végül a fenti DataFrame-et növekvő sorrendbe rendezem, és az inplace = True parancsot használom, hogy a rendezés állandó legyen. Végül törlöm az Állapot oszlopot. Most az információs oszlopom államnév szerint van rendezve.

df.sort_values(by = 'State', ascending = True, inplace = True)
del df['State']
df

További tartalom a PlainEnglish.io oldalon. Iratkozzon fel ingyenes heti hírlevelünkre. Kövessen minket a Twitter és a LinkedIn oldalon. Tekintse meg a Community Discord-unkat, és csatlakozzon a Tehetségkollektívánkhoz.