Zoarkado Zenos
Zoarkado Zenos

Reputation: 39

Python3 How to set up DataFrame from while loops

I want to create a DataFrame that appends A_weights and B_weights as the columns; like this:

        A_weights     B_weights
weights    0              1
weights   0.01           0.99
weights   0.02           0.98
weights   0.03           0.97
weights   ...            ...
weights    1              0

So far, I've done this:


A_weights = -0.01
A_n = 1

B_weights = 1.01
B_n = 0

counter = 0.01

while A_weights < A_n:
    A_weights += counter
    print(round(A_weights,2))
print('\n')

while B_weights > B_n:
    B_weights -= counter
    print(round(B_weights,2))
    
weights_df = {'Weights_A': ['A_weights'],
        'Weights_B': ['B_weights']
        }

df = pd.DataFrame(weights_df, columns = ['A_weights', 'B_weights'])

print (df)

Output

0.0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.11
0.12
0.13
0.14
0.15
0.16
0.17
0.18
0.19
0.2
0.21
0.22
0.23
0.24
0.25
0.26
0.27
0.28
0.29
0.3
0.31
0.32
0.33
0.34
0.35
0.36
0.37
0.38
0.39
0.4
0.41
0.42
0.43
0.44
0.45
0.46
0.47
0.48
0.49
0.5
0.51
0.52
0.53
0.54
0.55
0.56
0.57
0.58
0.59
0.6
0.61
0.62
0.63
0.64
0.65
0.66
0.67
0.68
0.69
0.7
0.71
0.72
0.73
0.74
0.75
0.76
0.77
0.78
0.79
0.8
0.81
0.82
0.83
0.84
0.85
0.86
0.87
0.88
0.89
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1.0


1.0
0.99
0.98
0.97
0.96
0.95
0.94
0.93
0.92
0.91
0.9
0.89
0.88
0.87
0.86
0.85
0.84
0.83
0.82
0.81
0.8
0.79
0.78
0.77
0.76
0.75
0.74
0.73
0.72
0.71
0.7
0.69
0.68
0.67
0.66
0.65
0.64
0.63
0.62
0.61
0.6
0.59
0.58
0.57
0.56
0.55
0.54
0.53
0.52
0.51
0.5
0.49
0.48
0.47
0.46
0.45
0.44
0.43
0.42
0.41
0.4
0.39
0.38
0.37
0.36
0.35
0.34
0.33
0.32
0.31
0.3
0.29
0.28
0.27
0.26
0.25
0.24
0.23
0.22
0.21
0.2
0.19
0.18
0.17
0.16
0.15
0.14
0.13
0.12
0.11
0.1
0.09
0.08
0.07
0.06
0.05
0.04
0.03
0.02
0.01
-0.0
Empty DataFrame
Columns: [GS_weights, FB_weights]
Index: []

I have managed to create a while Loop for both A_weights and B_weights. Please help me in tweaking the dataframe to set A_weights and B_weights as columns and displays the weights accordingly from the while loop.

Upvotes: 2

Views: 49

Answers (1)

Ruthger Righart
Ruthger Righart

Reputation: 4921

First, the values need to written to a list, which I call here nA_weights and nB_weights:

counter = 0.01
A_weights = -0.01
A_n = 1
B_weights = 1.01
B_n = 0
nA_weights = []
nB_weights = []

while A_weights < A_n:
    A_weights += counter
    nA_weights.append(A_weights)

while B_weights > B_n:
    B_weights -= counter
    nB_weights.append(B_weights)

The next step puts the lists in a DataFrame:

df = pd.DataFrame({'Weights_A':nA_weights, 'Weights_B':nB_weights})

Upvotes: 2

Related Questions