I got an code running that imports an excel file, and i want to be able to sort some of the data in it and write it to a new excel file. I got the code working somewhat as I want, but can’t make it sort the values as wanted… I want to sort the df from the column named “Varetekst”(Sorry for not written in english!) How can I sort the df from a column containing strings? I have tried multiple solutions and I think maybe the problem is that the column are a obj and not a str.
filt_liste_fisk_1 = (liste_fisk[liste_fisk['EAN'].str.len() <= 4])
filt_liste_fisk = liste_fisk[liste_fisk['EAN'].str.startswith("2000")]
fiskeliste = pd.read_excel(r'C:UsersKevinDesktopMENYFiltrerings listerliste_fisk.xlsx',index_col = False)
fiskeliste['EAN'] = fiskeliste['EAN'].map(str)
fiskeliste1 = df[df['EAN'].isin(set(fiskeliste['EAN']))]
fiskliste = pd.concat([filt_liste_fisk_1, filt_liste_fisk,fiskeliste1])
print_fisk = fiskliste.drop(['Lagertype'], axis = 1).drop(['Vindu'], axis = 1)
print_fisk.astype(({'Varetekst': 'str'}))
print_fisk.sort_values(by=["Varetekst"], ascending=True)
print(print_fisk)
There is more to the code, where I import it and write it to an excel file. But this is where I do all the work, so this is what the code output:
Bestilt Enhet Varetekst EAN
107 1 KG Ferske Reker | (Minimum holdbarhetsdato: 31- 1893
108 0.7 KG Ferske Reker | (Minimum holdbarhetsdato: 31- 1893
120 0.6 KG Ferske Reker | (Minimum holdbarhetsdato: 31- 1893
123 1.6 KG Ferske Reker | (Minimum holdbarhetsdato: 31- 1893
99 1 STK Krabbeskjell Håndrenset m/Klokjøtt pr stykk | 20001951
104 0.6 KG Skrei skiver pr Kg | (Minimum holdbarhetsdato 20001922
106 1 STK Blåskjell Levende pr Kg | (Minimum holdbarhet 20001990
113 0.5 KG Rå Skreirogn | (Minimum holdbarhetsdato: 01- 20001941
117 0.6 KG Skrei skiver pr Kg | (Minimum holdbarhetsdato 20001922
119 1 STK Blåskjell Levende pr Kg | (Minimum holdbarhet 20001990
122 0.3 KG Steinbit Filet pr Kg | (Minimum holdbarhetsda 20001927
133 0.5 KG Reker 60/80 Frosne pr Kg 20005200
Filtrering ferdig!
Advertisement
Answer
Sorting does not get saved in place by default (as with pandas operations in general).
Either set inplace=True
:
print_fisk.sort_values(by=["Varetekst"], ascending=True, inplace=True)
Or assign back to print_fisk
if inplace
is not set:
print_fisk = print_fisk.sort_values(by=["Varetekst"], ascending=True)