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