in this sectionwe learned some of the core data access mechanisms of pandas dataframes the data access mechanism of pandas are as simple and extensive to use as with numpy this ensures that we have various way to access our data data operations in subsequent of our bookthe pandas dataframe will be our data structure of choice for most data processing and wrangling operations so we would like to spend some more time exploring some important operations that can be performed on dataframes using specific supplied functions values attribute each pandas dataframe will have certain attributes one of the important attributes is values it is important as it allows us access to the raw values stored in the dataframe and if they all homogenous of the same kind then we can use numpy operations on them this becomes important when our data is mix of numeric and other data types and after some selections and computationswe arrive at the required subset of numeric data using the values attribute of the output dataframewe can treat it in the same way as numpy array this is very useful when working with feature sets in machine learning traditionallynumpy vectorized operations are much faster than function based operations on dataframes in [ ]df pd dataframe(np random randn( )columns=[' '' '' ']in [ ]df out[ ] - - - - - - - - - - in [ ]nparray df values in [ ]type(nparrayout[ ]numpy ndarray missing data and the fillna function in real-world datasetsthe data is seldom clean and polished we usually will have lot of issues with data quality (missing valueswrong values and so onone of the most common data quality issues is that of missing data pandas provides us with convenient function that allows us to handle the missing values of dataframe for demonstrating the use of the fillna functionwe will use the dataframe we created in the previous example and introduce missing values in it in [ ]df iloc[ , na in [ ]df out[ ]