python - 将对角线上方的元素移动到行的开头

标签 python pandas dataframe

我有一个作为数据透视表生成的矩阵。我已包含以下数据。我需要将对角线变成第一列,这有效地重新定向矩阵,以便对角线中的单元格成为每行第一列中的单元格。

这是 Pandas 中渲染的矩阵

enter image description here

这是矩阵之后的样子。

enter image description here

df = pd.DataFrame({
    'exposure':[4500,2000, 2000, 2000, 2000, 
                6000,10000,3000,2000,1000,
                2000,3000,4000,6000], 
    'due_date':['2019-01-01', '2019-01-01', '2019-01-01', '2019-01-01', '2019-01-01', 
                '2019-01-02', '2019-01-02', '2019-01-02','2019-01-01','2019-01-04',
                '2019-01-03','2019-01-03','2019-01-03','2019-01-04'], 
    'repaid_date':['2019-01-01', '2019-01-04','2019-01-01', '2019-01-03', '2019-01-02', 
                   '2019-01-03','2019-01-04', '2019-01-02', '2019-01-03', '2019-01-04',
                   '2019-01-03','2019-01-04','2019-01-03','2019-01-04']})

pivot = df.pivot_table(values='exposure', index='due_date', columns='repaid_date', aggfunc=len)
pivot.fillna(0,inplace=True)
pivot.reset_index(inplace=True)

最佳答案

在填充或重置索引之前,您可以使用 Divakar 的 justify 来证明 NaN 合理。功能。

pivot = df.pivot_table(values='exposure', 
                       index='due_date', 
                       columns='repaid_date', 
                       aggfunc='size')
pivot[:] = justify(pivot.values, invalid_val=np.nan, axis=1, side='left')
pivot.fillna(0, downcast='infer').reset_index()

repaid_date    due_date  2019-01-01  2019-01-02  2019-01-03  2019-01-04
0            2019-01-01           2           1           2           1
1            2019-01-02           1           1           1           0
2            2019-01-03           2           1           0           0
3            2019-01-04           2           0           0           0

关于python - 将对角线上方的元素移动到行的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54063466/

相关文章:

python - 计算数据框列中 True/False 的出现次数

Python Pandas 减去每列并创建新列

r - R中有没有一种方法可以根据条件合并行?

python - 如何在 Python 中向量化数组操作

python - 实现多类骰子损失函数

python - 将二维数组转换为两列数据框 pandas

python - 如何显示从 Pandas Dataframe 对象到 Matplotlib 条形图的 X 轴

r - 汇总和排序数据框

python - 如何在 python 中自动化配置 AWS 命令​​行界面和设置配置文件过程?

Python 舍入错误