pi后的列保留顺序

2024-09-27 00:12:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为a的nx3数据帧,如下所示:

   _Segment _Article  Binaire
0       550  5568226        1
1       550  5612047        1
2       550  5909228        1
3       550  5924375        1
4       550  5924456        1
5       550  6096557        1
....

变量\u Article在A中是唯一定义的(A中有N个唯一的\u Article值)。你知道吗

我做一个旋转:

B=A.pivot(index='_Segment', columns='_Article')

,然后将缺少的值nan替换为零:

B[np.isnan(B)]=0

获得:

          Binaire                                                        \
_Article  2332299  2332329  2332337  2932377  2968223  3195643  3346080   
_Segment                                                                  
550             0        0        0        0        0        0        0   
551             0        0        0        0        0        0        0   
552             0        0        0        0        0        0        0   
553             1        1        1        0        0        0        1   
554             0        0        0        1        0        1        0   

其中列在透视期间按字典顺序排序。你知道吗

我的问题是:如何在B列中保留A中文章的排序顺序? 谢谢!你知道吗


Tags: columns数据index字典定义排序顺序np
1条回答
网友
1楼 · 发布于 2024-09-27 00:12:17

我想我明白了。这样做有效:

首先,存储专栏文章

order_art=A['_Article']

在pivot中,添加“values”参数以避免层次化列(请参见http://pandas.pydata.org/pandas-docs/stable/reshaping.html),这些列会阻止重新索引正常工作:

B=A.pivot(index='_Segment', columns='_Article', values='_Binaire')

然后,像以前一样,用零替换nan

B[np.isnan(B)]=0

最后使用reindex恢复跨列变量项目的原始顺序:

B=B.reindex(columns=order_art)

有更优雅的解决方案吗?你知道吗

相关问题 更多 >

    热门问题