我有以下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
Run Code Online (Sandbox Code Playgroud)
我想创建一个df1仅保留对角元素并将新的上下三角值转换为零的新DataFrame 。
我的最终数据集应如下所示:
a b c d
0 5 0 0 0
1 0 10 0 0
2 0 0 15 0
3 0 0 0 20
Run Code Online (Sandbox Code Playgroud)
您可以使用numpy.diag:
df = pd.DataFrame(data=np.diag(np.diag(df)), columns=df.columns)
print(df)
Run Code Online (Sandbox Code Playgroud)
输出量
a b c d
0 5 0 0 0
1 0 10 0 0
2 0 0 15 0
3 0 0 0 20
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |