Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Illu - 20.12.25 - klo:12.59
-
Avoin data tarjoaa mahdollisuuden katsoa kuntien ostolaskuja. https://www.avoindata.fi/data/fi/group/alueet-ja-kaupungit
Sieltä saa valitsemansa kunnan ostolaskujen taulukon .csv-muodossa. Kiinnostavin on sarake ostoihin käytetyt eurot mutta se on tekstimuodossa. Hakemistenkaan jälkeen en ole löytänyt ratkaisua, jolla sarakkeen tekstin saisin numeroiksi, jotka voi järjestää sarakkeessa nousevasti/laskevasti. Ohjeita on englanninkielisinä eri vuosilta, mutta suomenkielisen asennuksen vastaavia funktioita en ole löytänyt tai saanut toimimaan.
Miten siis taulukkoa pitää käsitellä?
Ubuntu 24.04, LibreOfice 24.2.7.2
-
Sieltä saa valitsemansa kunnan ostolaskujen taulukon .csv-muodossa. Kiinnostavin on sarake ostoihin käytetyt eurot mutta se on tekstimuodossa.
Eikö siinä csv:n tuontivaiheessa voi määritellä kyseistä saraketta numeroiksi?
Jollei, niin kerro taulukossa kyseisen sarakkeen solut 1,0:lla viereiseen sarakkeeseen (tai 1.0:lla, jos käytät desimaalipistettä).
-
Ei voi mitenkään vaikuttaa latausmuotoa. Linkistä "Lataa" tulee vain "ostolaskut2024.csv". Siinä taulukossa eurot ovat tekstimuodossa, se piilossa oleva heittomerkki ennen numeroa. Miten teksti kerrotaan yhdellä ja saadaan numero? En siis osannut esimerkkisi mukaan.
-
Varmaan käsitin jotain väärin, koska eihän tuossa tarvi tehdä muuta kuin valita kaikki sarakkeet ja muuttaa niiden formaatti? Näin se pitäisi anakin Officella mennä, enkä usko tuossa olevan mitään eroa toiminnassa.
-
Mulla noi ihan oikein. Voi laskea vaikka kaikki yhteen.
Eihän sulla tuonnissa valittuna täppä muunna tekstiksi?
-
Oletettavasti minä olen se joka käsittää jotain väärin. Kiinnostuksen kohteena on Kustavin osatolaskut. Varsinais-Suomen pieni saaristokunta, jossa on pienin verotus ja suurin ostolaskujen osuus. Ylläoleva linkki ei anna vaihtoehtoja, minkälainen taulukko on ladattavissa.
LibreOffice Calc auki ja Tiedosto-Avaa tuottaa seuraavan näköisen tuontivalinnan (tulipa iso kuva).
(http://)
Tuolla en saa aikaan saraketta, jota voisi järkevästi lajitella, toki se tekstikin jotenkin sorteeraantuu, mutta ei toivotulla tavalla.
-
Ongelmana taitaa olla desimaalipiste, kun suomalainen lokaali olettaa desimaalipilkun.
Ratkaisuja on ainakin pari: joko aseta lokaalin sellaiseksi, jossa käytetään desimaalipistettä, tai sitten putkitat CSV:n ensin sopivan ohjelman kuten tr:n tai AWKin läpi, jolla voit muuttaa pisteen pilkuksi.
-
Kun osaaminen loppuu, niin pitää tehdä ruma ratkaisu. Poistin ladatusta taulukosta muut sarakkeet paitsi eurot ja laskuttajan. Kopioin sen ja tallensin Tekstimuokkaimeen. Sieltä korvasin pisteet pilkulla ja tallensin tekstimuotoisena. Avasin sen Calcilla ja siten sain lajiteltua tiedot.
Kiitos kullekin neuvoja tarjonneelle. En merkitse ratkaistuksi koska oikeakin tapa on.
-
CSV-tiedoston sisältöä tarkemmin tuntematta on paha sanoa, mutta jokin tämmöinen voisi riittää:
tr . , < tiedosto.csv > korjattu_tiedosto.csv
Näin jollei pistettä käytetä tiedostossa missään muualla kuin lukujen sarakkeessa. Jos käytetään, pitää varmaan käyttää AWKia, esimerkiksi:
awk '{ sub("\\.", ",", $8); print }' tiedosto.csv > korjattu_tiedosto.csv
(olettaen, että ainoa korjattava sarake on kahdeksas vasemmalta lukien).
-
Kun osaaminen loppuu, niin pitää tehdä ruma ratkaisu. Poistin ladatusta taulukosta muut sarakkeet paitsi eurot ja laskuttajan. Kopioin sen ja tallensin Tekstimuokkaimeen. Sieltä korvasin pisteet pilkulla ja tallensin tekstimuotoisena. Avasin sen Calcilla ja siten sain lajiteltua tiedot.
Kiitos kullekin neuvoja tarjonneelle. En merkitse ratkaistuksi koska oikeakin tapa on.
Helpointa olisi asettaa tiedosto avaamisen yhteydessä lokaaliksi joku angloamerikkalainen, jossa desimaalierottimena on piste. LibreOfficen CSV-avausikkunassa on tälle valinta. Merkistö taitaa tuossa tiedostossa saattaisi olla ISO-8859-15, joka on muuten melkein sama kuin vanhempi ISO-8859-1, mutta euromerkki sisältyy versioon 15. Tässä kyseisessä aineistossa ei tosin ollut euromerkkejä. Päivämääräkentässä ei näemmä ollut mitään erottimia, ja päivämäärä on tyyppiä DDMMYYYY, joten se pitää vielä erikseen muotoilla jos tarvitaan oikea päivämäärä numeron sijaan.
CSV on melko vapaamuotoinen tiedostomuoto, jonka tulkitseminen vaatii usein pientä säätöä. Huonommassa tapauksessa rivit voivat olla myös monella tapaa rikki, jos välimerkkejä sisältäviä arvoja ei ole suojattu esimerkiksi lainausmerkeillä, tai jos lainausmerkkejä esiintyy sisäkkäin. Nykyisin CSV-tiedostojen tuonti ja tarvittavat muunnokset olisi oikeastaan paras toteuttaa LLM:llä. Raskaammat kielimallit suoriutuvat tehtävästä paremmin kuin ihminen keskimäärin, mutta kevyt lokaali mallikin auttaisi jo pitkälle.
-
Vähän hyvän joulusyöpöttelyn ja kinkun eritoten jäljiltä tietokoneharrastusta pienen tauon jälkeen.
Itse ja toin tuon tekstin sarakkeisiin tuosta samaisesta .csv -tiedostosta, niin tuon kuvankaappauksen osalta eri, mutta erottimena pelkkä puolipiste.
Sitten mitä "Muotoile solut", niin siinä valuutassa tosiaan tuo merkistökoodauksen osalta "muokkaa-> etsi ja korvaa[. ,] ja sitten joko ennen tai jälkeen korvauksen pistät "H,M,O" -sarakkeiden tyypisti valuutta.
Varmasti tässä tullut jo ratkaisu aiemminkin, mutta pistän nyt oman ratkaisuni säikeen jatkoksi.