【问题标题】:Convert a series to diagnol dataframe with all other elements as zero python pandas将系列转换为对角线数据框,所有其他元素为零 python pandas
【发布时间】:2018-12-15 01:19:40
【问题描述】:

在 pandas python 中转换这个系列或数据框

1 2 3

1 0 0
0 2 0
0 0 3

如何以熊猫的方式进行。这可以通过循环和类似的东西来实现

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    您可以使用 numpy 来执行此操作。 以下代码将起作用

    import numpy as np
    a = np.zeros((3, 3), int)
    np.fill_diagonal(a, [1,2,3])
    
    print(a)
    

    输出:

    array([[1, 0, 0],
           [0, 2, 0],
           [0, 0, 3]])
    

    要将其转换为数据框,只需执行以下操作

    import pandas as pd
    d = pd.DataFrame(a)
    print(d)
    
       0  1  2
    0  1  0  0
    1  0  2  0
    2  0  0  3
    

    【讨论】:

    • 我想用数据框而不是 numpy 来做这个
    • 如果你只想在 pandas 中使用它,请编写一个函数并使用 lambda 应用它
    猜你喜欢
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 2020-02-20
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多