<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Lesson 2 Lab
Step1:  Print the column names of the dataset to the screen, one column name per line.
Step2:  Extract the first 2 rows of the data frame and print them to the console. Console in this case is output into the jupyter notebook. 
What does the output look like?
Step3:  How many observations (i.e. rows) are in this data frame?
Step4:  Extract the last 2 rows of the data frame and print them to the console. What does the output
look like?
Step5:  What is the value of Ozone in the 47th row?
Step6:  How many missing values are in the Ozone column of this data frame?
Step7:  What is the mean of the Ozone column in this dataset? Exclude missing values (coded as NA)
from this calculation.
Step8:  Extract the subset of rows of the data frame where Ozone values are above 31 and Temp values
are above 90. What is the mean of Solar.R in this subset?
<ASSISTANT_TASK:>
Python Code:
import pandas as pd
import numpy as np
import os
path = ""
data = pd.read_csv("https://github.com/JamesByers/GA-SEA-DAT2/raw/master/data/ozone.csv")
print data.head()
Explanation: Lesson 2 Lab:  Practical Pandas
_This is a quiz given in Roger Peng's Coursera class Computing for Data Analysis.  _
Sourced from Research Computing MeetUp's Python course.
End of explanation
data.columns
Explanation: Print the column names of the dataset to the screen, one column name per line.
End of explanation
print data.head(2)
Explanation: Extract the first 2 rows of the data frame and print them to the console. Console in this case is output into the jupyter notebook. 
What does the output look like?
End of explanation
print data.count()
Explanation: How many observations (i.e. rows) are in this data frame?
End of explanation
print data.tail(2)
Explanation: Extract the last 2 rows of the data frame and print them to the console. What does the output
look like?
End of explanation
print data.loc[47:47,['Ozone']]
Explanation: What is the value of Ozone in the 47th row?
End of explanation
pd.isnull(data['Ozone']).sum()
#print misscnt
#cnt = data['Ozone'].count()
#print cnt
#np.count_nonzero(np.eye(4))
#cnt1 = np.count_nonzero(pd.isnull(data['Ozone']).values)   
#np.count_nonzero(df.isnull())  
#print cnt1
cnt = data['Ozone'] == np.nan
print cnt.count()
Explanation: How many missing values are in the Ozone column of this data frame?
End of explanation
 data['Ozone'].mean()
Explanation: What is the mean of the Ozone column in this dataset? Exclude missing values (coded as NA)
from this calculation.
End of explanation
#df_posA[df_posA.A < 0] = -1*df_posA
newdf = data[(data.Ozone> 31 )& (data.Temp >90)]
newdf.mean()
Explanation: Extract the subset of rows of the data frame where Ozone values are above 31 and Temp values
are above 90. What is the mean of Solar.R in this subset?
End of explanation
<END_TASK>