Skip to content
Advertisement

How fulfil empy df by FOR loop

I need to create a dataframe with two columns: variable, function based on this variable. There is an error in case of next code:

test = pd.DataFrame({'Column_1': pd.Series([], dtype='int'),
               'Column_2': pd.Series([], dtype='float')})
for i in range(1,30):
    k = 0.5**i
    test.append(i, k)
print(test)

TypeError: cannot concatenate object of type '<class 'int'>'; only Series and DataFrame objs are valid

What do I need to fix here? Looks like answer is easy, however it is uneasy to find it… Many thanks for your help

Advertisement

Answer

I like Vaishali’s way of approaching it. If you really want to use the for loop, this is how I would of done it:

import pandas as pd

test = pd.DataFrame({'Column_1': pd.Series([], dtype='int'),
           'Column_2': pd.Series([], dtype='float')})

for i in range(1,30):
    test=test.append({'Column_1':i,'Column_2':0.5**i},ignore_index=True)

test = test.round(5)
print(test)


    Column_1  Column_2
0        1.0   0.50000
1        2.0   0.25000
2        3.0   0.12500
3        4.0   0.06250
4        5.0   0.03125
5        6.0   0.01562
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement