gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:28:28 24 4
gpt4 key购买 nike

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

这是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com