I am updating a data frame using apply of function.
But now I need to modify multiple columns using this function,
Here is my sample code:
def update_row(row):
    listy = [1,2,3]
    return listy
dp_data_df[['A', 'P','Y']] = dp_data_df.apply(update_row, axis=1)
It is throwing the following error:
ValueError: shape mismatch: value array of shape (10,) could not be broadcast to indexing result of shape (3,10)
Thanks in advance.
Pandas apply() Function to Single & Multiple Column(s) Using pandas. DataFrame. apply() method you can execute a function to a single column, all and list of multiple columns (two or more).
You can return pd.Series:
dp_data_df = pd.DataFrame({'A':[3,5,6,6],
                           'B':[6,7,8,9],
                           'P':[5,6,7,0],
                           'Y':[1,2,3,4]})
print (dp_data_df)
   A  B  P  Y
0  3  6  5  1
1  5  7  6  2
2  6  8  7  3
3  6  9  0  4
def update_row(row):
    listy = [1,2,3]
    return pd.Series(listy)
dp_data_df[['A', 'P','Y']] = dp_data_df.apply(update_row, axis=1)
print (dp_data_df)
   A  B  P  Y
0  1  6  2  3
1  1  7  2  3
2  1  8  2  3
3  1  9  2  3
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With