我有以下 DataFrame 作为玩具示例:
a = [5,2,6,8]
b = [2,10,19,16]
c = [3,8,15,17]
d = [3,8,12,20]
df = pd.DataFrame([a,b,c,d], columns = ['a','b','c','d'])
df
我想创建一个新的 DataFrame df1,它只保留对角线元素并将上三角和下三角值转换为零。
我的最终数据集应该是这样的:
a b c d
0 5 0 0 0
1 0 10 0 0
2 0 0 15 0
3 0 0 0 20
请您参考如下方法:
你可以使用 numpy.diag :
df = pd.DataFrame(data=np.diag(np.diag(df)), columns=df.columns)
print(df)
输出
a b c d
0 5 0 0 0
1 0 10 0 0
2 0 0 15 0
3 0 0 0 20
