Mam dwa pliki CSV, jeden z danymi na temat lotnisk, drugi zawiera nazwy państw i ich powierzchnię. Chcę policzyć ilość lotnik na kilometr kwadratowy. Pierwszy pomysł jaki miałem to zliczyć ile razy występuję nazwa państwa w kolumnie"państwo" w pliku 'airports'. I następnie odpowiednie wartości podzielić. Niestety tutaj nie wiedziałem jak wziąć wartości z tego co zostało policzone, porównać nazwy z wartościami w pliku 'areas'.Drugi pomysł to połączyć dwa pliki ale znowu pojawił się ten sam problem. To co napisałem do tej pory
import pandas as pd
import numpy as np
colnames=['numerek','nazwa','miasto','państwo','skrót1','skrót2','wspó1','wspoł2','numer1','numer2','oznaczenie','kontynent/stolica']
dane1=pd.read_csv('airports.csv',names=colnames,header=None)
dane2=pd.read_csv('area.csv')
df1=pd.DataFrame(dane1)
df2=pd.DataFrame(dane2)
df=pd.concat([df1.reset_index(), df2], axis=1).set_index('numerek')
a=df1['państwo'].str.split('|', expand=True).stack().value_counts()
print(df)
- area.csv (5 KB) - ściągnięć: 158
- airports.csv (830 KB) - ściągnięć: 166
get
iterując po kluczach w słowniku, bierz obie wartości: powierzchnia / ilość. Wynik możesz zapisać choćby w trzecim z nich. Oczywiście da się to zrobić prościej, ale optymalizować najlepiej po napisaniu działającej wersji :). Druga opcja, to trójelementowe listy wewnątrz innej listy (lista dwuwymiarowa).