Reputation: 47
I trying to loop a function for each column to transform it and concatenate it back to the main data frame. But I am only getting the last loop output.
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
columns = ['A','B']
def run_all(x):
x = x*2
return x
df_summary = pd.DataFrame()
for column in columns:
df0 = df[column]
df__ = []
for each_row in df0:
df__.append(run_all(each_row))
df_summary = pd.concat([df, pd.DataFrame({'Summary_' + column: df__})], axis=1)
df_final = pd.DataFrame(df_summary)
print(df_final)
Upvotes: 1
Views: 253
Reputation: 789
Do you want to try the following:-
df_summary = df.copy()
for column in columns:
df0 = df[column]
df__ = []
for each_row in df0:
df__.append(run_all(each_row))
df_summary['Summary_{}'.format(column)] = pd.DataFrame({'Summary_' + column: df__}).values
print(df_summary)
output:
Upvotes: 1