Bird
Raised Fist0
Data Analysis Pythondata~10 mins

Financial data analysis pattern in Data Analysis Python - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to load financial data from a CSV file into a DataFrame.

Data Analysis Python
import pandas as pd

data = pd.[1]('financial_data.csv')
Drag options to blanks, or click blank then click option'
Ato_csv
Bread_csv
Cread_excel
Dread_json
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'read_excel' when the file is a CSV.
Using 'to_csv' which is for saving, not loading.
2fill in blank
medium

Complete the code to calculate the daily returns from the 'Close' price column.

Data Analysis Python
data['Daily_Return'] = data['Close'].[1]()
Drag options to blanks, or click blank then click option'
Apct_change
Bdiff
Ccumsum
Dmean
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'diff' which calculates absolute difference, not percentage.
Using 'cumsum' which accumulates sums, not returns.
3fill in blank
hard

Fix the error in the code to filter rows where the 'Volume' is greater than 1 million.

Data Analysis Python
high_volume = data[data['Volume'] [1] 1000000]
Drag options to blanks, or click blank then click option'
A==
B<
C>
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' or '<=' which select smaller volumes.
Using '==' which selects only volumes exactly equal to 1 million.
4fill in blank
hard

Fill both blanks to create a dictionary of average closing prices for each stock symbol.

Data Analysis Python
avg_close = {symbol: data[data['Symbol'] == symbol]['[1]'].[2]() for symbol in data['Symbol'].unique()}
Drag options to blanks, or click blank then click option'
AClose
BVolume
Cmean
Dsum
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'Volume' instead of 'Close' for price data.
Using 'sum' instead of 'mean' for average.
5fill in blank
hard

Fill all three blanks to create a filtered DataFrame with stocks having positive daily returns and volume above 500,000.

Data Analysis Python
filtered_data = data[(data['Daily_Return'] [1] 0) & (data['Volume'] [2] 500000)]
result = filtered_data[['[3]', 'Daily_Return', 'Volume']]
Drag options to blanks, or click blank then click option'
A>
B>=
CSymbol
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' for filtering positive returns.
Selecting wrong columns in the final DataFrame.

Practice

(1/5)
1. What is the main purpose of analyzing financial data in Python?
easy
A. To write novels
B. To create video games
C. To design websites
D. To understand money trends and make informed decisions

Solution

  1. Step 1: Understand the goal of financial data analysis

    Financial data analysis focuses on studying money-related data to find patterns and trends.
  2. Step 2: Match the goal with the options

    Only To understand money trends and make informed decisions talks about understanding money trends and making decisions, which fits the purpose.
  3. Final Answer:

    To understand money trends and make informed decisions -> Option D
  4. Quick Check:

    Financial data analysis = Understand money trends [OK]
Hint: Focus on money trends and decisions for financial analysis [OK]
Common Mistakes:
  • Confusing financial analysis with unrelated fields
  • Ignoring the purpose of data analysis
  • Choosing options unrelated to money or data
2. Which of the following is the correct way to import pandas for financial data analysis in Python?
easy
A. import pandas as pd
B. import panda as pd
C. import pd as pandas
D. import pandas

Solution

  1. Step 1: Recall the standard pandas import syntax

    The common way to import pandas is using 'import pandas as pd' for easy reference.
  2. Step 2: Check each option for correctness

    import pandas as pd matches the standard syntax. Options B and C have wrong module names or order. import pandas imports pandas but without alias, which is less common.
  3. Final Answer:

    import pandas as pd -> Option A
  4. Quick Check:

    Standard pandas import = import pandas as pd [OK]
Hint: Use 'import pandas as pd' for standard data analysis [OK]
Common Mistakes:
  • Misspelling 'pandas' as 'panda'
  • Reversing import order
  • Not using alias 'pd' which is common practice
3. Given the code:
import pandas as pd

data = {'Date': ['2024-01-01', '2024-01-02'], 'Price': [100, 105]}
df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
print(df.loc['2024-01-02'])

What will be the output?
medium
A. Error: KeyError
B. Price 105 Name: 2024-01-02 00:00:00, dtype: int64
C. Date 2024-01-02 Price 105
D. Price 100 Name: 2024-01-01 00:00:00, dtype: int64

Solution

  1. Step 1: Understand DataFrame creation and index setting

    The DataFrame has dates converted to datetime and set as index. So rows are accessed by date index.
  2. Step 2: Access row with loc for '2024-01-02'

    Using df.loc['2024-01-02'] returns the row with Price 105 and index as Timestamp '2024-01-02 00:00:00'.
  3. Final Answer:

    Price 105 Name: 2024-01-02 00:00:00, dtype: int64 -> Option B
  4. Quick Check:

    df.loc['2024-01-02'] = Price 105 [OK]
Hint: Remember loc uses index; datetime index returns full timestamp row [OK]
Common Mistakes:
  • Expecting a DataFrame instead of a Series output
  • Not converting 'Date' to datetime before indexing
  • Using wrong date format causing KeyError
4. Identify the error in this code snippet for calculating daily returns:
import pandas as pd
prices = pd.Series([100, 105, 103, 108])
returns = prices.pct_change()
print(returns)
medium
A. No error; code correctly calculates daily returns
B. pct_change() should be pct_change(1)
C. prices should be a DataFrame, not Series
D. Missing import for numpy

Solution

  1. Step 1: Understand pct_change() method

    pct_change() calculates percentage change between current and prior element by default (periods=1).
  2. Step 2: Check code correctness

    prices is a Series, which supports pct_change(). No import or DataFrame needed. Code runs fine and prints daily returns.
  3. Final Answer:

    No error; code correctly calculates daily returns -> Option A
  4. Quick Check:

    pct_change() default periods=1 works [OK]
Hint: pct_change() defaults to 1 period; no extra args needed [OK]
Common Mistakes:
  • Thinking pct_change needs argument 1 explicitly
  • Confusing Series with DataFrame necessity
  • Assuming numpy import is required for pct_change
5. You have a DataFrame df with columns Date (string), Open, and Close prices. How do you create a new column Daily_Return that shows the percentage change from Open to Close for each day?
hard
A. df['Daily_Return'] = df['Close'].pct_change()
B. df['Daily_Return'] = df['Open'] / df['Close']
C. df['Daily_Return'] = (df['Close'] - df['Open']) / df['Open'] * 100
D. df['Daily_Return'] = df['Close'] - df['Open']

Solution

  1. Step 1: Understand daily return calculation

    Daily return is the percent change from Open to Close price: ((Close - Open) / Open) * 100.
  2. Step 2: Match formula with options

    df['Daily_Return'] = (df['Close'] - df['Open']) / df['Open'] * 100 correctly applies the formula. df['Daily_Return'] = df['Close'].pct_change() calculates percent change between rows, not within a row. Options C and D do not calculate percentage change correctly.
  3. Final Answer:

    df['Daily_Return'] = (df['Close'] - df['Open']) / df['Open'] * 100 -> Option C
  4. Quick Check:

    Daily return = ((Close - Open)/Open)*100 [OK]
Hint: Use (Close - Open) / Open * 100 for daily percent return [OK]
Common Mistakes:
  • Using pct_change() which compares different rows
  • Dividing Open by Close instead of difference over Open
  • Not multiplying by 100 for percentage
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