In: Computer Science
python - needed asap (thank you in advance!!!!)
Using the provided climate_data_Dec2017.csv file, find out how many readings there were across our recorded weather stations for each wind direction on the 26th of December. The file contains data for more than this particular day. To make sure that you only include readings from the 26th, you should use pandas to filter the data. If any wind direction value can still be found for the other days but not 26th, it should still appear in the result with value zero. While we encourage you not to rely on a loop for this part, you are free to do as you see fit. (Hint: pandas can help you find a set of unique values from a series of data) Let your program print out sorted wind directions in ascending alphabetical order.
The output should look like this:
E : 4
ENE : 2
ESE : 1
N : 0
NE : 1
NNE : 1
NNW : 1
NW : 0
S : 0
SE : 3
SSE : 3
SSW : 0
SW : 1
W : 0
WNW : 0
WSW : 0
data file
Date,State,City,Station Code,Minimum temperature (C),Maximum
temperature (C),Rainfall (mm),Evaporation (mm),Sunshine
(hours),Direction of maximum wind gust,Speed of maximum wind gust
(km/h),9am Temperature (C),9am relative humidity (%),3pm
Temperature (C),3pm relative humidity (%)
2017-12-25,VIC,Melbourne,086338,15.1,21.4,0,8.2,10.4,S,44,17.2,57,20.7,54
2017-12-25,VIC,Bendigo,081123,11.3,26.3,0,,,ESE,46,17.2,53,25.5,25
2017-12-25,QLD,Gold
Coast,040764,22.3,35.7,0,,,SE,59,29.2,53,27.7,67
2017-12-25,SA,Adelaide,023034,13.9,29.5,0,10.8,12.4,SE,43,18.6,42,27.7,17
2017-12-25,QLD,Brisbane,040913,22.5,36.2,0,11.0,10.0,WSW,61,29.5,53,32.3,53
2017-12-25,QLD,Townsville,032040,24.8,32.5,0,,,NNE,41,29.1,55,31.1,48
2017-12-25,QLD,Cairns,031011,20.3,33.3,0,,,E,41,29.2,59,32.4,45
2017-12-25,NSW,Wollongong,068228,15.9,21.3,7.6,,,SSW,48,18.5,80,19.5,70
2017-12-25,NSW,Newcastle,061055,19.8,21.6,0.6,,,S,48,20.2,83,20.9,74
2017-12-25,VIC,Ballarat,089002,8.5,21.4,0,,,SSE,54,13.3,62,21.1,40
2017-12-25,QLD,Sunshine
C,040861,20.2,31.5,0,,,NNE,43,28.9,62,28.8,61
2017-12-25,NSW,Canberra,070351,13.4,23.0,0,,,ESE,39,15.0,66,21.9,47
2017-12-25,NSW,Albury,072160,14.7,29.1,0,,,SSE,37,18.7,42,26.6,32
2017-12-25,QLD,Toowoomba,041529,19.5,32.0,0,,,E,61,24.4,68,31.2,39
2017-12-25,VIC,Geelong,087184,14.1,21.6,0,,,S,41,16.7,58,19.9,53
2017-12-25,NT,Darwin,014015,24.0,27.6,20.0,6.6,0.0,NNE,46,25.4,91,27.3,81
2017-12-25,WA,Perth,009021,19.7,33.1,0,11.0,13.3,SW,39,27.8,34,31.1,29
2017-12-26,VIC,Ballarat,089002,10.8,29.1,0,,,SE,56,17.3,59,27.1,30
2017-12-26,NSW,Canberra,070351,10.8,22.4,0,,,E,39,18.3,57,21.8,48
2017-12-26,QLD,Brisbane,040913,19.0,29.7,54.8,12.4,7.5,E,26,25.2,77,28.8,56
2017-12-26,NSW,Newcastle,061055,18.5,22.5,3.8,,,SE,43,21.1,76,21.7,79
2017-12-26,SA,Adelaide,023034,18.0,33.3,0,11.4,12.7,E,43,25.7,23,28.6,28
2017-12-26,QLD,Toowoomba,041529,16.4,28.4,0,,,E,74,23.9,65,22.7,79
2017-12-26,WA,Perth,009021,15.4,27.4,0,9.0,13.2,SW,41,22.3,59,25.7,45
2017-12-26,VIC,Bendigo,081123,12.8,31.3,0,,,SE,41,20.5,50,30.3,27
2017-12-26,QLD,Gold
Coast,040764,20.4,27.9,11.6,,,SSE,52,24.7,87,25.8,81
2017-12-26,VIC,Geelong,087184,12.5,26.6,0,,,SSE,31,18.9,69,23.8,50
2017-12-26,VIC,Melbourne,086338,12.5,30.5,0,8.0,12.9,SSE,37,17.4,66,27.0,43
2017-12-26,QLD,Cairns,031011,22.0,33.0,0,,,ENE,33,29.2,61,31.1,56
2017-12-26,NSW,Wollongong,068228,17.8,24.1,0,,,ENE,41,21.3,59,23.9,55
2017-12-26,QLD,Sunshine
C,040861,19.9,28.6,7.4,,,ESE,33,28.4,67,27.6,68
2017-12-26,QLD,Townsville,032040,23.4,32.4,0,,,NE,37,29.9,52,30.4,50
2017-12-26,NSW,Albury,072160,14.0,30.7,0,,,NNE,31,21.6,46,29.2,26
2017-12-26,NT,Darwin,014015,24.6,31.6,8.0,4.6,1.4,NNW,56,26.7,90,30.3,72
2017-12-27,WA,Perth,009021,14.5,26.5,0,11.8,12.3,SSW,54,21.4,49,25.5,34
2017-12-27,NSW,Wollongong,068228,18.8,25.1,0,,,NE,43,21.8,77,23.3,72
2017-12-27,VIC,Geelong,087184,14.9,37.2,0,,,N,41,26.4,46,35.9,20
2017-12-27,QLD,Sunshine
C,040861,21.5,28.8,1.4,,,SE,33,26.5,73,27.6,66
2017-12-27,NSW,Albury,072160,15.0,32.5,0,,,E,30,23.6,54,30.9,29
2017-12-27,VIC,Ballarat,089002,15.3,32.9,0,,,N,56,22.2,55,30.9,30
2017-12-27,QLD,Toowoomba,041529,16.7,26.9,29.4,,,E,57,20.4,80,26.1,57
2017-12-27,QLD,Gold
Coast,040764,20.3,29.4,0.2,,,S,41,26.4,72,27.5,71
2017-12-27,NSW,Canberra,070351,15.8,29.1,0,,,NE,33,18.9,68,26.4,37
2017-12-27,SA,Adelaide,023034,20.6,36.0,0,8.8,3.8,WSW,48,32.9,9,28.9,34
2017-12-27,VIC,Melbourne,086338,17.3,34.5,0,11.8,10.4,NW,46,25.3,45,32.9,32
2017-12-27,VIC,Bendigo,081123,16.3,35.6,0,,,N,46,22.7,54,32.9,30
2017-12-27,QLD,Cairns,031011,22.4,32.6,0,,,NE,35,29.1,59,31.3,55
2017-12-27,QLD,Townsville,032040,23.2,32.8,0,,,NE,37,30.3,52,30.0,59
2017-12-27,QLD,Brisbane,040913,20.7,29.6,3.0,5.6,10.0,E,30,27.3,60,28.2,56
2017-12-27,NSW,Newcastle,061055,20.5,23.5,0,,,E,39,22.1,80,22.9,79
2017-12-27,NT,Darwin,014015,23.5,31.3,8.8,3.0,0.0,NW,15,28.7,77,29.5,73
2017-12-28,NSW,Newcastle,061055,19.8,24.3,0,,,E,41,22.6,76,23.6,81
2017-12-28,QLD,Toowoomba,041529,16.6,27.9,0,,,E,43,21.3,73,27.4,52
2017-12-28,SA,Adelaide,023034,21.1,25.0,0,10.2,1.0,SSE,26,22.1,82,23.8,74
2017-12-28,QLD,Sunshine
C,040861,20.4,28.8,24.0,,,E,31,26.0,69,27.6,63
2017-12-28,VIC,Ballarat,089002,20.1,30.4,0,,,NW,31,25.1,42,29.3,31
2017-12-28,NSW,Wollongong,068228,19.8,25.3,0,,,NE,39,23.2,73,23.8,75
2017-12-28,NSW,Canberra,070351,12.9,32.4,0,,,NW,37,20.1,70,32.4,31
2017-12-28,VIC,Bendigo,081123,22.6,34.4,0,,,NNE,24,26.2,43,32.6,29
2017-12-28,QLD,Townsville,032040,26.9,32.6,0,,,ENE,39,30.2,57,31.0,54
2017-12-28,WA,Perth,009021,15.7,28.8,0,11.2,13.2,SSW,52,22.1,44,25.6,40
2017-12-28,VIC,Melbourne,086338,24.0,32.8,0,14.0,4.1,SSW,31,26.4,46,23.9,73
2017-12-28,QLD,Brisbane,040913,20.6,29.4,0.6,7.8,12.5,ESE,24,27.5,60,28.8,57
2017-12-28,QLD,Gold
Coast,040764,20.7,28.9,0,,,SSE,35,26.5,75,28.1,64
2017-12-28,NSW,Albury,072160,17.4,32.8,0,,,ENE,35,22.3,63,31.9,39
2017-12-28,VIC,Geelong,087184,22.9,28.0,0,,,S,39,25.7,54,20.7,85
2017-12-28,NT,Darwin,014015,25.6,34.5,1.0,0.8,9.8,WNW,31,31.0,72,33.1,62
2017-12-28,QLD,Cairns,031011,22.6,34.2,0,,,E,39,30.2,58,32.8,46
2017-12-29,NSW,Wollongong,068228,19.4,25.8,0,,,SW,22,22.7,85,23.2,84
2017-12-29,VIC,Bendigo,081123,20.6,30.6,0.8,,,SW,39,23.6,76,29.6,47
2017-12-29,NSW,Newcastle,061055,20.8,26.3,0,,,ENE,41,24.2,78,25.7,68
2017-12-29,SA,Adelaide,023034,18.2,22.7,2.4,2.8,1.9,WSW,33,20.3,70,21.5,64
2017-12-29,QLD,Toowoomba,041529,18.9,28.9,0,,,NNE,39,22.5,81,27.8,48
2017-12-29,NT,Darwin,014015,26.1,33.7,0,5.2,7.4,S,31,30.8,68,32.4,66
2017-12-29,VIC,Ballarat,089002,15.6,26.6,0,,,NNW,44,21.4,83,18.9,99
2017-12-29,QLD,Townsville,032040,26.0,33.2,0,,,NE,35,30.8,55,31.5,49
2017-12-29,NSW,Canberra,070351,18.3,33.4,0,,,NW,46,24.7,56,31.3,33
2017-12-29,QLD,Cairns,031011,24.9,34.3,0,,,E,39,29.8,61,32.6,47
2017-12-29,WA,Perth,009021,15.6,30.0,0,8.8,13.1,WSW,41,22.9,43,27.5,38
2017-12-29,VIC,Melbourne,086338,18.6,24.4,0.2,5.8,1.0,SSW,35,19.5,78,20.0,85
2017-12-29,QLD,Gold
Coast,040764,22.4,28.8,10.2,,,NNE,26,26.0,91,27.3,74
2017-12-29,NSW,Albury,072160,21.0,27.3,1.4,,,SSE,33,23.0,82,25.9,66
2017-12-29,VIC,Geelong,087184,17.2,22.6,0,,,SSW,26,19.3,79,18.7,93
2017-12-29,QLD,Sunshine
C,040861,21.9,29.9,0,,,NE,26,27.5,65,28.5,62
2017-12-30,NSW,Wollongong,068228,21.6,29.7,0.6,,,SE,46,25.2,73,26.8,69
2017-12-30,QLD,Townsville,032040,25.8,33.6,0.2,,,N,35,30.2,60,31.7,49
2017-12-30,QLD,Brisbane,040913,23.3,32.2,0,8.6,7.8,NE,24,28.9,55,30.4,65
2017-12-30,VIC,Melbourne,086338,15.6,21.3,8.4,4.2,8.1,SSW,65,19.0,60,19.6,71
2017-12-30,VIC,Bendigo,081123,13.6,25.3,0.4,,,SW,43,17.8,60,22.2,47
2017-12-30,QLD,Cairns,031011,22.0,33.9,0,,,ENE,46,29.0,61,31.2,62
2017-12-30,QLD,Sunshine
C,040861,21.0,31.3,0,,,NNE,43,29.0,54,28.1,72
2017-12-30,VIC,Geelong,087184,13.6,22.8,4.6,,,W,56,17.9,78,21.9,41
2017-12-30,NSW,Canberra,070351,18.6,28.3,16.4,,,WNW,50,22.8,70,27.8,33
2017-12-30,QLD,Gold
Coast,040764,23.4,31.5,0,,,NW,41,27.2,61,28.0,74
2017-12-30,NSW,Albury,072160,20.3,27.7,13.8,,,W,44,23.0,65,26.2,36
2017-12-30,VIC,Ballarat,089002,8.2,18.6,1.4,,,WSW,50,14.7,81,16.6,70
2017-12-30,SA,Adelaide,023034,17.4,22.7,0.2,4.8,10.2,SW,41,19.1,72,22.0,51
2017-12-30,NT,Darwin,014015,24.2,34.8,1.2,4.4,11.2,NW,28,29.9,71,33.6,61
2017-12-30,NSW,Newcastle,061055,23.2,34.1,2.0,,,NW,52,24.6,81,31.2,50
2017-12-30,QLD,Toowoomba,041529,19.1,30.2,0,,,N,31,23.6,70,30.2,49
2017-12-31,QLD,Toowoomba,041529,21.1,30.2,1.4,,,E,54,24.7,75,23.6,66
2017-12-31,NSW,Canberra,070351,14.9,27.9,0,,,NNW,37,19.7,65,26.2,37
2017-12-31,VIC,Bendigo,081123,8.9,29.0,0,,,WNW,33,17.3,54,26.7,28
2017-12-31,NSW,Newcastle,061055,21.3,25.3,0.2,,,SSE,46,22.5,78,22.4,82
2017-12-31,NSW,Wollongong,068228,18.9,23.4,19.6,,,NNE,48,19.2,93,21.1,84
2017-12-31,QLD,Sunshine
C,040861,24.1,32.5,0,,,SSW,65,30.3,62,27.1,78
2017-12-31,QLD,Gold
Coast,040764,22.4,29.1,14.8,,,SE,56,27.1,84,25.6,97
2017-12-31,VIC,Geelong,087184,9.8,25.9,0,,,SSE,33,16.4,70,23.9,48
2017-12-31,QLD,Brisbane,040913,24.7,33.6,0,8.0,6.6,E,31,30.0,63,27.1,76
2017-12-31,VIC,Melbourne,086338,12.0,25.7,0.2,4.0,13.5,S,33,17.3,60,22.5,48
2017-12-31,WA,Perth,009021,19.7,33.6,0,12.4,13.2,WSW,41,26.0,45,30.6,36
2017-12-31,VIC,Ballarat,089002,5.7,25.2,2.0,,,W,39,12.8,77,23.5,35
2017-12-31,QLD,Townsville,032040,26.7,33.3,0,,,NNE,33,30.8,55,33.0,44
2017-12-31,NT,Darwin,014015,27.4,34.1,0,6.0,8.6,N,26,30.8,73,32.8,59
2017-12-31,QLD,Cairns,031011,21.6,33.1,0,,,NNE,28,29.9,61,31.2,54
2017-12-31,NSW,Albury,072160,12.7,29.5,0,,,WNW,33,19.9,67,27.7,30
2017-12-31,SA,Adelaide,023034,13.7,22.3,0,8.0,9.7,SW,35,17.7,59,21.4,53
Given above is the image of the python code required to complete the above task. I am also copying the code here. In case of compilation errors on copying the below code due to stray characters, please refer to the image above .
# Load the Pandas libraries with alias 'pd'
import pandas as pd
# Read data from file ' climate_data_Dec2017.csv'
# (should be in the same directory that your program resides
in)
data = pd.read_csv("climate_data_Dec2017.csv")
# Preview of data frame
data.head()
direction_freq = data[data['Date'] == '2017-12-26']['Direction of
maximum wind gust'].value_counts().reindex(data['Direction of
maximum wind gust'].unique(), fill_value = 0)
direction_freq = direction_freq.sort_index(0).to_string()
print(direction_freq)
Explanation:
1. pandas had been imported under the alias name 'pd'.
2. read_csv() reads a comma separated values file and converts it into a pandas data frame using ', ' (comma) delimiter.
3. Ensure that the file climate_data_Dec2017.csv is in the same working directory as in your program.
3. direction_freq holds the answer to our problem, We filter all the rows with date '2017-12-26', because all values are for year 2017 and we need only dates for 26th December. We do value_counts() of those direction values, so it returns the frequency of directions only for 26th of December. But directions which are not present for that date will not appear yet. We need their count to be zero, so we reindex() the data from the previous index we created, grab all the unique values of direction, but this time all the directions will have the value 0 (fill_value = 0) whose value were NaN (Not a Number) earlier because they were not present.
4. Now, we sort the index based on the name of direction which is the first column, convert the index to string and print.