0
0
Data Analysis Pythondata~20 mins

Dropping missing values (dropna) in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Dropna Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of dropna on DataFrame with default settings
What is the output of this code?
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'A': [1, 2, np.nan, 4],
  'B': [np.nan, 2, 3, 4]
})
result = df.dropna()
print(result)
Data Analysis Python
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'A': [1, 2, np.nan, 4],
  'B': [np.nan, 2, 3, 4]
})
result = df.dropna()
print(result)
A
     A    B
0  1.0  NaN
1  2.0  2.0
2  NaN  3.0
3  4.0  4.0
B
     A    B
0  1.0  NaN
1  2.0  2.0
C
     A    B
1  2.0  2.0
3  4.0  4.0
D
Empty DataFrame
Columns: [A, B]
Index: []
Attempts:
2 left
💡 Hint
dropna() removes rows with any missing values by default.
data_output
intermediate
2:00remaining
Number of rows after dropna with subset parameter
Given this DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'X': [1, np.nan, 3, 4],
  'Y': [np.nan, 2, 3, np.nan],
  'Z': [1, 2, 3, 4]
})
How many rows remain after running:
df.dropna(subset=['X', 'Y'])
Data Analysis Python
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'X': [1, np.nan, 3, 4],
  'Y': [np.nan, 2, 3, np.nan],
  'Z': [1, 2, 3, 4]
})
result = df.dropna(subset=['X', 'Y'])
print(len(result))
A1
B2
C3
D4
Attempts:
2 left
💡 Hint
Rows with NaN in columns X or Y are dropped.
🔧 Debug
advanced
2:00remaining
Identify the error in dropna usage
What error does this code raise?
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'A': [1, 2, np.nan],
  'B': [4, np.nan, 6]
})
result = df.dropna(axis=2)
print(result)
Data Analysis Python
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'A': [1, 2, np.nan],
  'B': [4, np.nan, 6]
})
result = df.dropna(axis=2)
print(result)
ANo error, prints DataFrame with dropped columns
BTypeError: dropna() got an unexpected keyword argument 'axis'
CAttributeError: 'DataFrame' object has no attribute 'dropna'
DValueError: No axis named 2 for object type DataFrame
Attempts:
2 left
💡 Hint
DataFrame axes are 0 (rows) and 1 (columns).
visualization
advanced
2:00remaining
Visualize effect of dropna with thresh parameter
Given this DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'A': [1, np.nan, 3, 4],
  'B': [np.nan, 2, 3, np.nan],
  'C': [1, 2, np.nan, 4]
})
Which option shows the correct DataFrame after:
df.dropna(thresh=2)
Data Analysis Python
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'A': [1, np.nan, 3, 4],
  'B': [np.nan, 2, 3, np.nan],
  'C': [1, 2, np.nan, 4]
})
result = df.dropna(thresh=2)
print(result)
A
     A    B    C
1  NaN  2.0  2.0
2  3.0  3.0  NaN
B
     A    B    C
0  1.0  NaN  1.0
1  NaN  2.0  2.0
2  3.0  3.0  NaN
3  4.0  NaN  4.0
C
     A    B    C
0  1.0  NaN  1.0
1  NaN  2.0  2.0
2  3.0  3.0  NaN
D
Empty DataFrame
Columns: [A, B, C]
Index: []
Attempts:
2 left
💡 Hint
thresh=2 means keep rows with at least 2 non-NaN values.
🚀 Application
expert
3:00remaining
Effect of dropna with how='all' on DataFrame
Consider this DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'X': [np.nan, np.nan, 3, 4],
  'Y': [np.nan, 2, 3, 4],
  'Z': [np.nan, np.nan, np.nan, 4]
})
What is the output of:
df.dropna(how='all')
Data Analysis Python
import pandas as pd
import numpy as np
df = pd.DataFrame({
  'X': [np.nan, np.nan, 3, 4],
  'Y': [np.nan, 2, 3, 4],
  'Z': [np.nan, np.nan, np.nan, 4]
})
result = df.dropna(how='all')
print(result)
A
     X    Y    Z
1  NaN  2.0  NaN
2  3.0  3.0  NaN
3  4.0  4.0  4.0
B
     X    Y    Z
2  3.0  3.0  NaN
3  4.0  4.0  4.0
C
     X    Y    Z
0  NaN  NaN  NaN
1  NaN  2.0  NaN
2  3.0  3.0  NaN
3  4.0  4.0  4.0
D
Empty DataFrame
Columns: [X, Y, Z]
Index: []
Attempts:
2 left
💡 Hint
how='all' drops rows only if all values are NaN.