Python programiranje- Općenito

poruka: 10
|
čitano: 929
|
moderatori: Danny_HR, Lazarus Long, XXX-Man
1
+/- sve poruke
ravni prikaz
starije poruke gore
2 godine
offline
Python programiranje- Općenito

Pošto vidim da jedan od najpopularnijih programskih jezika na svijetu nema neku temu s prevelikom aktivnosti na forumu, odlučio sam pokrenuti jednu!

Ovdje možete postavljati pitanja, postavljati svoje projekte i jednostavno pričati sa ostalim developerima.
Ova tema također može obuhvaćati sva područja u kojima se python koristi(web, R&D, istraživanje, Raspberry Pi, pygame...)

Ali ajde, da ja nešto previše ne duljim, pustit ću vas da pišete 

 

I da, jel može sticky?

Fight with the best,die like the rest!
Poruka je uređivana zadnji put pet 17.8.2018 11:13 (FatMAN).
Moj PC  
2 0 hvala 0
3 godine
offline
Python programiranje- Općenito

Pozz!

 

Imam nekoliko zadataka iz Pythona sa rješenjima koja ne kužim. Može netko voljan na PM da mi objasni? Hvala :) 

 
0 0 hvala 0
4 godine
offline
Python programiranje- Općenito

@jarpe

 

Slobodno pukni ovdje  na forum. Ima ekipe kaj ti može objasniti, ali nitko ne voli gotovane koji samo dolaze i traže rješenja, bez imalo vlastitog truda.

Panzerkampfwagen.Dinamo Zagreb.Matija.Leaving or dead, always ahead...
Moj PC  
2 0 hvala 0
3 godine
offline
Python programiranje- Općenito

Može li pomoć s učitavanjem i radom na ovoj konkretnoj .csv datoteci?

 

Pošto sam prošao sve žive tutorijale za .csv, a nešto i dalej zafrkava pretpostavljam, da je neki problem s formatom same datoteke. Uglavnom imam ih preko 50-60 i hhtio bih naučiti kako sam napraviti kod koji vadi određenu ćeliju.

 

Naime trebao bih izvaditi slijedeće ćelije: ime stanice (B1), nadmorsku visinu (B12) [kod nekih nie bilo 3 promjene pa je možda B10 ili B11], te geografske koordinate B17 i C17 [ista stvar ko sa nadm. visinom]

 

Ideja mi je bila sa pandasom i df.loc doći do ćelije ispod i skočiti jednu gore, tako bih sigurno uvijek uzeo najrecentniju nadm. visinu i geo. lokaciju. (ako se referiram na prvu slijedeću ispod, i odem za jedan gore, sigurno ću odabrati zadnju)

 

Eh sad problem se javio kratko nakon učitavanja, datoteka je .csv, ali razdjelnik nije ',', nego ';'. I postoje očito neki nepotrebni razmaci (white spaces). Obziro mda već 2 dana gledam i pokušavam otkriti kako i zašto, a nemam napretka, odlučio sam pitati, prije no izgubim još više vremena.

 

Hvala

 

edit: ne tražim gotov kod, nego ako može hint gdje griješim, tj. možda je samo problem u ovoj datoteci

 

code:

import csv
import os
import numpy as np
import pandas as pd
desired_width=640
pd.set_option('display.width', desired_width)
pd.set_option('display.max_columns',20)

os.chdir('d:\InputPy')

#column_names = ['A', 'B','C', 'D']
df = pd.read_csv("NS-Tagessummen-113001.csv", sep=';', engine = 'python', encoding="ISO-8859-1", skipinitialspace=True) #names= column_names)
cf = df.set_index('Messstelle:', drop=True)

date=df[df['Messstelle:'].str.match("Geog", na=False)]
#idx = df1.index.get_loc("01.09.1895")
#max = df.iloc[int.date-1]


print(date)

 

probao sam se igrati za zamjenom imena stupaca, idx-om i td..

 

 

Poruka je uređivana zadnji put uto 25.9.2018 19:30 (Karlek_19).
Moj PC  
0 0 hvala 0
6 godina
offline
Re: Python programiranje- Općenito

Ta datoteka je kupus, a ne formatirani csv. Najbolje učitaj retke u listu pa podatke izvuci splitanjem stringova.

3 godine
offline
Re: Python programiranje- Općenito
Bobobo-bo Bo-bobo kaže...

Ta datoteka je kupus, a ne formatirani csv. Najbolje učitaj retke u listu pa podatke izvuci splitanjem stringova.

 Hvala. Mislim da sam uspio. Primjer je na slici. Ako si na to mislio.

 

Eh sad nisam uspio pronaći kako da kad i nađem element koji me interesira, kako "skočiti" na element prije njega?

 

 

 

 

Poruka je uređivana zadnji put sri 26.9.2018 6:14 (Karlek_19).
6 godina
offline
Re: Python programiranje- Općenito

Koristi enumerate za brojanje redaka:

 

with open('N-Tagessummen-103218.csv', encoding='ISO-8859-1') as f:
    my_list = f.readlines()

for i, line in enumerate(my_list):
    if line.startswith('Geographische Koordinaten'):
        gultig_seit, hohe = my_list[i - 1].split(';')
        print(hohe.strip())

 

 Kao što vidiš, csv modul ti uopće ne treba. Rezultat funkcije open je file object koji ima metode za čitanje redaka.

3 godine
offline
Python programiranje- Općenito

import itertools
import glob

def extraction():
my_list = []
list_files = glob.glob('d://InputPy/*.csv')
row=0
col=0
for x, files in enumerate(list_files):
with open(files, encoding='ISO-8859-1') as f:
my_list += f.readlines()
f_type_con = [int(i) if i.isdigit() == True else i for i in f]
for i, elem in enumerate(my_list):
if elem.startswith('HZB-Nummer'):
s_name = my_list[i - 1].split(';')
if elem.startswith('Geog'):
hohe = my_list[i - 1].split(';')
if elem.startswith('Exportzeitrei'):
b_value = my_list[i - 1].split(' ')
b_chars = list(b_value)
b_chars_3 = list(b_chars[-1])
values_b3 = ''.join(b_chars_3[0:2])
b_chars_2 = list(b_chars[-2])
values_b2 = ''.join(b_chars_2[0:2])
b_chars_1 = list(b_chars[-3])
values_b1 = ''.join(b_chars_1[1:3])
if elem.startswith('Exportzeitrei'):
l_value = my_list[i - 1].split(' ')
l_chars = list(l_value)
l_chars_3 = list(l_chars[17:20])
values_l3 = ''.join(l_chars_3[2:4])
l_chars_2 = list(l_chars[17:20])
values_l2 = ''.join(l_chars_2[1:2])
l_chars_1 = list(l_chars[-22])
values_l1 = ''.join(l_chars_1[1:])
data_list=[(s_name[1]), ((hohe[1]).format(f_type_con)), (values_l1), (values_l2), (values_l3), (values_b1), (values_b2), (values_b3)]
output=list(itertools.chain(data_list))
#print("%s" % s_name[1])
#print("%s" % (hohe[1]).format(f_type_con))
#print(values_b1, values_b2, values_b3)
#print(values_l1, values_l2, values_l3)
print(output)

extraction()



#workbook = xlsxwriter.Workbook('D://OutputPy/new_file.xlsx', {'strings_to_numbers': True})
#worksheet = workbook.add_worksheet()
#worksheet.write('B2', hohe[1].format(f_type_con))
# worksheet.write('G2', values_b1.format(f_type_con))
# worksheet.write('H2', values_b2.format(f_type_con))
# worksheet.write('I2', values_b3.format(f_type_con))
# worksheet.write('C2', values_l1.format(f_type_con))
# worksheet.write('D2', values_l2.format(f_type_con))
# worksheet.write('E2', values_l3.format(f_type_con))

 

Evo kodakoji ispiše liste za svaki fajl, kao na priloženoj slici.

 

Eh sad ako je ikako moguće da svaku tu listu zapiše u novi redak excela, bilo bi odlično.

konkretno:

Stupac A: ime postaja

Stupac b: visina

Stupac c: prva od koordinata dužine (l1)

i td..

 

Moj PC  
0 0 hvala 0
4 godine
offline
Python programiranje- Općenito

Nisam neki strucnjak za python ali jesi li probao preko for petlje?

Npr. za svaki element u listi dodaj element u tablicu

Mozes sve i sa jednom for petljom ako koristis zip()

 
0 0 hvala 0
3 godine
offline
Re: Python programiranje- Općenito
yakuzara kaže...

Nisam neki strucnjak za python ali jesi li probao preko for petlje?

Npr. za svaki element u listi dodaj element u tablicu

Mozes sve i sa jednom for petljom ako koristis zip()

 Hvala, riješeno je. Bio je problem u jednom razmaku (' ') i novom retku ('\n') kojeg nisam vidio i to je stvaralo problem kod ispisa. Trebalo je taj razmak i novi redak maknuti i sada je sve uredu.

Poruka je uređivana zadnji put pet 12.10.2018 5:30 (Karlek_19).
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice