Say I have a dataframe that looks like:
d = {'option1': ['1', '0', '1', '1'], 'option2': ['0', '0', '1', '0'], 'option3': ['1', '1', '0', '0'], 'views': ['6', '10', '5', '2']
df = pd.DataFrame(data=d)
print(df)
option1 option2 option3 views
0 1 0 1 6
1 0 0 1 10
2 1 1 0 5
3 1 0 0 2
I'm trying to build a for loop that iterates over each column (except the column "views") and each row. If the value of a cell is not 0, I want to replace it with the corresponding value of the column "views" from the same row.
The following output is required (should be easier to understand):
option1 option2 option3 views
0 6 0 6 6
1 0 0 10 10
2 5 5 0 5
3 2 0 0 2
I tried something like:
df_range = len(df)
for column in df:
for i in range(df_range):
if column != 0:
column = df.views[i]
But I know I'm missing something, it does not work.
Also please note that in my real dataframe, I have dozens of columns, so I need something that iterates over each column automatically. Thanks!!
I saw this thread Update a dataframe in pandas while iterating row by row but it doesn't exactly apply to my problem, because I'm not only going row by row, I also need to go column by column.