<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Jo lenne tudni pontosabban, hogy mit jelent itt a neha..
Step1:  lassuk lepesekben
Step2:  ugy nez ki ez a kifejezes a hibas a 2016-al. ez a zert van, mert ez az oszlop nem valos datumkent van ertelmezve. ket lehetoseg van, vagy atkonvertaljuk datumma, vagy manualisan levagjuk az evet. az elso modszerrel van gey problema
Step3:  ezert az egyeteln mod a manualis favagas...
Step4:  most kellene mukodjon - ez erdemben nem valtoztatja meg a vizualizaciot
Step5:  vissa az eredetihez
Step6:  Nezd meg az a fuggvenyt, hogy pandas copy illetve deepcopy. Ez igy nem masolja le a dataframe-et, csak a pointereket valtoztatja meg..
<ASSISTANT_TASK:>
Python Code:
df
Explanation: Jo lenne tudni pontosabban, hogy mit jelent itt a neha..
End of explanation
df=pd.read_csv(csv_path)
df[(df[u'year'] <= 2016)]
Explanation: lassuk lepesekben:
End of explanation
print pd.Timestamp.min
print pd.Timestamp.max
Explanation: ugy nez ki ez a kifejezes a hibas a 2016-al. ez a zert van, mert ez az oszlop nem valos datumkent van ertelmezve. ket lehetoseg van, vagy atkonvertaljuk datumma, vagy manualisan levagjuk az evet. az elso modszerrel van gey problema: pythonban a datumok 1677-ben kezdodnek..
End of explanation
year2=[]
for i in df['year']:
    try: year2.append(int(i[6:10]))
    except: year2.append(np.nan)
df['year']=year2
Explanation: ezert az egyeteln mod a manualis favagas...
End of explanation
df[(df[u'year'] <= 2016)]
Explanation: most kellene mukodjon - ez erdemben nem valtoztatja meg a vizualizaciot
End of explanation
df = df[(df[u'reclat'] != 0.0) & (df[u'reclong'] != 0.0) & (df[u'reclong'] >= -180) & (df[u'reclong'] <= 180) & (df[u'year'] >= 860) & (df[u'year'] <= 2016)]
df.head()
df=df.drop(u'id', axis=1)
df.dropna(inplace=True)
valid=df
Explanation: vissa az eredetihez
End of explanation
valid.index=[i for i in range(len(valid.index))]
valid.rename(columns={'mass (g)': 'mass'}, inplace = True)
tipus=[i for i in range(len(valid.index))]
orszag=[i for i in range(len(valid.index))]
for i in range(len(valid.index)):
    recclass=valid.loc[i]['recclass']
    if 'Iron' in recclass:
        tipus[i]='Iron'
    elif 'Mesosiderite' in recclass or 'Pallasite' in recclass:
        tipus[i]='Stony-Iron'
    else:
        tipus[i]='Stony'
    
    # Antarktisszal problema!!
    if valid.loc[i]['reclat'] <= -60:
        orszag[i]='Antarctica'
    else:
        coordinate=valid.loc[i]['reclat'], valid.loc[i]['reclong']
        orszag[i]=rg.get(coordinate)['country']
        
valid['type']=tipus
valid['country']=orszag
    
gf=[]
for i in range(len(valid.index)):
    seged={}
    for j in range(len(valid.loc[i])):
        seged[valid.columns[j]]=str(valid.loc[i][j])
    gf.append(seged)
gf
json_path='Meteorite_Landings3.json'
file(json_path,'w').write(json.dumps(gf))
#Orszag szerinti eloszlas
plt.rcParams['font.size'] = 20
valid_cgroup=valid.groupby('country')
valid_sum=valid_cgroup.size()
valid_sum.sort_values(ascending=True, inplace=True)
valid_sum.plot.pie(figsize=(20, 20))
# Latott es megtalalt szetvalasztasa
#fell=valid[valid['fall']=="Fell"].copy()
#found=valid[valid['fall']=="Found"].copy()
#found.index=[i for i in range(len(found.index))]
#fell.index=[i for i in range(len(fell.index))]
Explanation: Nezd meg az a fuggvenyt, hogy pandas copy illetve deepcopy. Ez igy nem masolja le a dataframe-et, csak a pointereket valtoztatja meg..
End of explanation
<END_TASK>