Bird
Raised Fist0
Pandasdata~20 mins

Why data I/O matters in Pandas - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Data I/O Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this CSV read code?

Given a CSV file with columns name and age, what does this code output?

Pandas
import pandas as pd
from io import StringIO
csv_data = "name,age\nAlice,30\nBob,25"
df = pd.read_csv(StringIO(csv_data))
print(df.head(1))
A
   name  age
0  Alice   30
B
   name  age
1    Bob   25
C
   name  age
0  Alice  30.0
D
   name  age
0  Alice  '30'
Attempts:
2 left
💡 Hint

Look at the first row printed by head(1).

❓ data_output
intermediate
1:30remaining
How many rows does this DataFrame have after reading JSON?

After reading this JSON string into a DataFrame, how many rows does it contain?

Pandas
import pandas as pd
json_str = '[{"city": "NY", "pop": 8000}, {"city": "LA", "pop": 4000}]'
df = pd.read_json(json_str)
print(len(df))
A0
B1
C2
DRaises ValueError
Attempts:
2 left
💡 Hint

Count the number of objects in the JSON array.

🔧 Debug
advanced
2:00remaining
What error does this code raise when reading a CSV with wrong delimiter?

What error will this code raise?

Pandas
import pandas as pd
from io import StringIO
csv_data = "name;age\nAlice;30\nBob;25"
df = pd.read_csv(StringIO(csv_data))
ATypeError: expected string or bytes-like object
BNo error, DataFrame with one column
CValueError: delimiter not supported
DParserError: Error tokenizing data
Attempts:
2 left
💡 Hint

What is the default delimiter for read_csv?

❓ visualization
advanced
2:30remaining
Which plot shows correct data after reading Excel file?

Given this Excel data read into a DataFrame, which plot correctly shows the sales column?

Pandas
import pandas as pd
import matplotlib.pyplot as plt
from io import BytesIO
import numpy as np

# Simulate Excel file
excel_data = BytesIO()
df_original = pd.DataFrame({'month': ['Jan', 'Feb', 'Mar'], 'sales': [100, 150, 120]})
df_original.to_excel(excel_data, index=False)
excel_data.seek(0)

# Read Excel

df = pd.read_excel(excel_data)

plt.figure(figsize=(4,3))
plt.plot(df['month'], df['sales'], marker='o')
plt.title('Monthly Sales')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.tight_layout()
plt.savefig('plot.png')
plt.close()
ALine plot with months Jan, Feb, Mar on x-axis and sales 100, 150, 120 on y-axis
BBar plot with months Jan, Feb, Mar on x-axis and sales 100, 150, 120 on y-axis
CLine plot with months 0, 1, 2 on x-axis and sales 100, 150, 120 on y-axis
DScatter plot with sales on x-axis and months on y-axis
Attempts:
2 left
💡 Hint

Look at the code: it uses plt.plot with month on x-axis.

🧠 Conceptual
expert
1:30remaining
Why is efficient data I/O critical in data science projects?

Choose the best reason why efficient data input/output (I/O) matters in data science workflows.

AIt allows data scientists to avoid learning programming languages.
BIt ensures data is always stored in CSV format for compatibility.
CIt guarantees that data will never have missing values after loading.
DIt reduces the time spent waiting for data to load or save, speeding up analysis and iteration.
Attempts:
2 left
💡 Hint

Think about how data size and format affect workflow speed.

Practice

(1/5)
1. What does pandas.read_csv() do in data science?
easy
A. It reads data from a CSV file into a DataFrame.
B. It saves a DataFrame to a CSV file.
C. It creates a new empty DataFrame.
D. It deletes a CSV file from disk.

Solution

  1. Step 1: Understand the function name

    The function name read_csv suggests it reads CSV files.
  2. Step 2: Recall pandas I/O functions

    read_csv loads data from a CSV file into a pandas DataFrame for analysis.
  3. Final Answer:

    It reads data from a CSV file into a DataFrame. -> Option A
  4. Quick Check:

    read_csv = read data [OK]
Hint: Remember: read_csv reads data in, to_csv writes data out [OK]
Common Mistakes:
  • Confusing read_csv with to_csv
  • Thinking it creates empty DataFrame
  • Assuming it deletes files
2. Which of the following is the correct syntax to save a DataFrame df to a CSV file named data.csv?
easy
A. df.to_csv('data.csv')
B. df.read_csv('data.csv')
C. pandas.save_csv(df, 'data.csv')
D. df.save('data.csv')

Solution

  1. Step 1: Identify the correct pandas method for saving

    The method to save a DataFrame to CSV is to_csv.
  2. Step 2: Check the syntax

    The syntax is df.to_csv('filename.csv'), which matches df.to_csv('data.csv').
  3. Final Answer:

    df.to_csv('data.csv') -> Option A
  4. Quick Check:

    to_csv saves DataFrame to CSV [OK]
Hint: Use df.to_csv('filename.csv') to save data [OK]
Common Mistakes:
  • Using read_csv instead of to_csv
  • Using non-existent methods like save_csv or save
  • Wrong method call order
3. What will be the output of this code?
import pandas as pd
from io import StringIO
csv_data = 'name,age\nAlice,30\nBob,25'
df = pd.read_csv(StringIO(csv_data))
print(df.shape)
medium
A. (3, 3)
B. (3, 2)
C. (2, 3)
D. (2, 2)

Solution

  1. Step 1: Understand the CSV data

    The CSV string has 2 rows of data (Alice and Bob) and 2 columns (name, age).
  2. Step 2: Check DataFrame shape

    The shape is (rows, columns) = (2, 2).
  3. Final Answer:

    (2, 2) -> Option D
  4. Quick Check:

    2 rows and 2 columns = (2, 2) [OK]
Hint: Count rows and columns in CSV to find shape [OK]
Common Mistakes:
  • Counting header as a data row
  • Mixing rows and columns in shape
  • Confusing number of columns
4. Identify the error in this code snippet that tries to read a CSV file:
import pandas as pd
df = pd.read_csv('data.txt')
medium
A. read_csv cannot read text files
B. No error, code is correct
C. File extension should be .csv, not .txt
D. Missing import statement

Solution

  1. Step 1: Examine the code for syntax issues

    The code has proper import and correct read_csv call. No syntax errors.
  2. Step 2: Understand file handling

    pandas read_csv reads files based on content, not extension. 'data.txt' works if it contains CSV data.
  3. Final Answer:

    No error, code is correct -> Option B
  4. Quick Check:

    read_csv ignores file extension [OK]
Hint: File extension (.csv or .txt) doesn't matter for read_csv if format is correct [OK]
Common Mistakes:
  • Insisting on .csv extension only
  • Believing read_csv can't handle .txt files
  • Overlooking the present import statement
5. You have a DataFrame df with columns ['A', 'B', 'C']. You want to save only columns A and C to a CSV file named subset.csv. Which code correctly does this?
hard
A. df.to_csv('subset.csv', columns=['A', 'C'])
B. df.to_csv('subset.csv', cols=['A', 'C'])
C. df[['A', 'C']].to_csv('subset.csv', index=False)
D. df.to_csv('subset.csv').select(['A', 'C'])

Solution

  1. Step 1: Recall to_csv column selection

    Slicing df[['A', 'C']] creates a subset DataFrame with only desired columns.
  2. Step 2: Proper saving syntax

    df[['A', 'C']].to_csv('subset.csv', index=False) saves exactly A and C without index column.
  3. Step 3: Evaluate alternatives

    df.to_csv('subset.csv', columns=['A', 'C']) saves index + A + C (extra column). df.to_csv('subset.csv', cols=['A', 'C']) invalid cols param. df.to_csv('subset.csv').select(['A', 'C']) invalid method chain.
  4. Final Answer:

    df[['A', 'C']].to_csv('subset.csv', index=False) -> Option C
  5. Quick Check:

    df[cols].to_csv(index=False) excludes index [OK]
Hint: df[['A','C']].to_csv('subset.csv', index=False) for only those columns [OK]
Common Mistakes:
  • Using columns= without index=False (adds index column)
  • Using invalid cols parameter
  • Chaining non-existent .select() method
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard