Write a program in Python to perform flatten the records in a given dataframe by C and F order

When working with DataFrames, you may need to flatten the data into a one-dimensional array. Python Pandas provides the ravel() function which can flatten data in different orders: C order (row-major) and F order (column-major).

Understanding C and F Order

The order parameter determines how multi-dimensional data is flattened ?

  • C order (row-major): Flattens row by row, reading elements from left to right
  • F order (column-major): Flattens column by column, reading elements from top to bottom

Creating the DataFrame

Let's start by creating a sample DataFrame with ID and Age columns ?

import pandas as pd

df = pd.DataFrame({'Id': [10, 25, 3, 11, 24, 6],
                   'Age': [12, 13, 12, 14, 15, 14]})
print("DataFrame is:")
print(df)
DataFrame is:
   Id  Age
0  10   12
1  25   13
2   3   12
3  11   14
4  24   15
5   6   14

Flattening in C Order (Row-major)

C order reads the DataFrame row by row, from left to right ?

import pandas as pd

df = pd.DataFrame({'Id': [10, 25, 3, 11, 24, 6],
                   'Age': [12, 13, 12, 14, 15, 14]})

C_order = df.values.ravel(order='C')
print("Flat C order:")
print(C_order)
Flat C order:
[10 12 25 13  3 12 11 14 24 15  6 14]

Flattening in F Order (Column-major)

F order reads the DataFrame column by column, from top to bottom ?

import pandas as pd

df = pd.DataFrame({'Id': [10, 25, 3, 11, 24, 6],
                   'Age': [12, 13, 12, 14, 15, 14]})

F_order = df.values.ravel(order='F')
print("Flat F order:")
print(F_order)
Flat F order:
[10 25  3 11 24  6 12 13 12 14 15 14]

Complete Example

Here's the complete program demonstrating both flattening orders ?

import pandas as pd

# Create DataFrame
df = pd.DataFrame({'Id': [10, 25, 3, 11, 24, 6],
                   'Age': [12, 13, 12, 14, 15, 14]})
print("DataFrame is:")
print(df)

# Flatten in C order (row-major)
C_order = df.values.ravel(order='C')
print("\nFlat C order:")
print(C_order)

# Flatten in F order (column-major)
F_order = df.values.ravel(order='F')
print("\nFlat F order:")
print(F_order)
DataFrame is:
   Id  Age
0  10   12
1  25   13
2   3   12
3  11   14
4  24   15
5   6   14

Flat C order:
[10 12 25 13  3 12 11 14 24 15  6 14]

Flat F order:
[10 25  3 11 24  6 12 13 12 14 15 14]

How It Works

The df.values.ravel() method converts the DataFrame to a NumPy array and then flattens it. The order parameter controls the flattening pattern ?

  • order='C': Row 0 ? Row 1 ? Row 2... (10,12 ? 25,13 ? 3,12...)
  • order='F': Column 0 ? Column 1 (10,25,3,11,24,6 ? 12,13,12,14,15,14)

Conclusion

Use df.values.ravel(order='C') for row-wise flattening and order='F' for column-wise flattening. This is useful for data preprocessing and converting DataFrames to arrays for machine learning algorithms.

Updated on: 2026-03-25T16:28:11+05:30

205 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements