Assalam wbt. Jumpa lagi.
Dalam post yang lepas* korang telah diajar bagaimana untuk import data *.dat dan membuka data tersebut menggunakan library numpy (np.loadtxt) namun kali ini kita akan melihat bagai mana filtering terhadap data boleh dilakukan menggunakan library Pandas serta menyimpan hasil filtering ke dalam fail output berasingan menggunakan library numpy (np.savetxt)
Sila rujuk post 7-Python : Import data (*.dat) format and running script in Notepad or any Editpad editor bagi mendapatkan data1.dat.
################# mula copy dari sini ######################
import numpy as np
data1=np.loadtxt('data1.dat',skiprows=1)
station=data1[:,0]
lat1=data1[:,1]
lon1=data1[:,2]
rain1=data1[:,3]
rain2=data1[:,4]
rain3=data1[:,5]
## METHOD FILTERING USING LIBRARY PANDAS
import pandas as pd
df = pd.DataFrame({"Station": station, "Latitude": lat1,
"Longitude": lon1,"Rain at 4 pm": rain1,"Rain at 5 pm":rain2,
"Rain at 6 pm":rain3})
df1 = df.loc[(df["Rain at 4 pm"] > 10)]
print(df1)
### METHOD SAVING DESIRED OUTPUT
np.savetxt('Output.dat',df1,fmt='%9.3f')
################## program end ###########################
Contoh paparan output.dat
48632.000 4.467 101.367 19.600 0.000 0.600
48648.000 3.102 101.645 51.400 7.200 2.800
48647.000 3.131 101.553 10.400 1.000 27.800
48665.000 2.267 102.250 84.000 0.200 0.000
Catatan:
a) Filtering rain at 4 pm atau column rain 1 bagi jumlah hujan melebihi 10 mm dilakukan.
b) df = pd.DataFrame({}) merujuk kepada format standard untuk declare kesemua list di dalam data ke dalam format baharu dataframe pandas.
c) df1 = df.loc[ ] merujuk kepada format standard kaedah filter jumlah hujan melebihi 10 mm di column rain1. Filter boleh dikembangkan kepada column lain seperti rain2 atau rain3 atau gabungan seperti df1 = df.loc[(df["Rain at 4 pm"] > 10) & (df["Rain at 6 pm"] > 2)] dipisahkan dengan simbol &
d) np.savetxt('Output.dat',df1,fmt='%9.3f') merujuk kepada standard command save text kepada data yang telah difilter iaitu df1 ke dalam fail berasingan iaitu "output.dat" pada format data fmt='%9.3f' yang terdiri daripada 3 titil perpuluhan. Korang boleh lihat file output tersebut ke dalam folder kerja korang.
Selamat mencuba!.
No comments:
Post a Comment