Code Execution Output

Python Code Example


import pandas as pd

# Initial data
data = {
    "Recursion": [1],
    "Number of Ellipses": [3],
    "Number of Chords": [6],
    "Number of Foci": [6],
    "Number of Points P": [3],
    "Ellipses": [['E_1_a', 'E_1_b', 'E_1_c']],
    "Chords": [['C_1_a', 'C_1_b', 'C_1_c', 'C_1_d', 'C_1_e', 'C_1_f']],
    "Foci": [['F_1_a', 'F_1_b', 'F_1_c', 'F_1_d', 'F_1_e', 'F_1_f']],
    "Points P": [['P_1_a', 'P_1_b', 'P_1_c']],
    "Centers": [[(3.5, 0), (1.0, 0), (6.0, 0)]],
    "Points P Coordinates": [[(3.5000000000000004, 3.122498999199199), (1.7949984102035197, 0.9929526960901777), (5.20500158979648, 0.9929526960901777)]],
    "Chord Lengths": [[[4.0, 3.9999999999999996], [1.9968740067521995, 1.0031259939978001], [1.0031259939978003, 1.9968740067522]]]
}

df = pd.DataFrame(data)

# Unnesting the data into 6 rows
unnested_data = {
    "Recursion": [],
    "Ellipses": [],
    "Chords": [],
    "Foci": [],
    "Points P": [],
    "Centers": [],
    "Points P Coordinates": [],
    "Chord Lengths": []
}

for i in range(df["Number of Chords"][0]):
    ellipse_index = i % df["Number of Ellipses"][0]
    foci_index = i % df["Number of Foci"][0]
    point_index = i % df["Number of Points P"][0]
    center_index = i % len(df["Centers"][0])
    
    unnested_data["Recursion"].append(df["Recursion"][0])
    unnested_data["Ellipses"].append(df["Ellipses"][0][ellipse_index])
    unnested_data["Chords"].append(df["Chords"][0][i])
    unnested_data["Foci"].append(df["Foci"][0][foci_index])
    unnested_data["Points P"].append(df["Points P"][0][point_index])
    unnested_data["Centers"].append(df["Centers"][0][center_index])
    unnested_data["Points P Coordinates"].append(df["Points P Coordinates"][0][center_index])
    unnested_data["Chord Lengths"].append(df["Chord Lengths"][0][ellipse_index][i % 2])

unnested_df = pd.DataFrame(unnested_data)
print(unnested_df)

Output

   Recursion Ellipses Chords   Foci Points P   Centers  \
0          1    E_1_a  C_1_a  F_1_a    P_1_a  (3.5, 0)   
1          1    E_1_b  C_1_b  F_1_b    P_1_b  (1.0, 0)   
2          1    E_1_c  C_1_c  F_1_c    P_1_c  (6.0, 0)   
3          1    E_1_a  C_1_d  F_1_d    P_1_a  (3.5, 0)   
4          1    E_1_b  C_1_e  F_1_e    P_1_b  (1.0, 0)   
5          1    E_1_c  C_1_f  F_1_f    P_1_c  (6.0, 0)   

                       Points P Coordinates  Chord Lengths  
0   (3.5000000000000004, 3.122498999199199)       4.000000  
1  (1.7949984102035197, 0.9929526960901777)       1.003126  
2    (5.20500158979648, 0.9929526960901777)       1.003126  
3   (3.5000000000000004, 3.122498999199199)       4.000000  
4  (1.7949984102035197, 0.9929526960901777)       1.996874  
5    (5.20500158979648, 0.9929526960901777)       1.996874