# How to replace diagonals with zero?

I need help with the syntax to replace the diagonal elements of a matrix with zero in Python. Can anyone please provide code examples or guidance on how to achieve this? Thank you.

``````import pandas as pd
import numpy as np

# create a sample DataFrame
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]})

# convert the DataFrame to a NumPy array
arr = df.values.reshape((3, 2))

# replace both diagonals of the array with zeros
np.fill_diagonal(arr, 0)
np.fill_diagonal(np.fliplr(arr), 0)

# convert the array back to a DataFrame
df = pd.DataFrame(arr, columns=df.columns, index=df.index)
df

ValueError: cannot reshape array of size 9 into shape (3,2)
``````

There is a simple technique of replacing both your diagonals with 0, it involves using the `for` loop for iterating over the `dataframe` and then using the indexing technique to replace the indexes of the diagonal. Here is the code for it:

• The `for` loop is used to iterate over the indices of each row of the `dataframe` using the `range()` function and the length of the `dataframe`.
• For each row, the first diagonal element is accessed using the index `i, i` and the second diagonal element is accessed using the index `i, len(df) - i - 1`. Both of these elements are then replaced with zeros.