繁体   English   中英

创建Pandas.Dataframe时如何维护索引中的顺序

[英]How to maintain the order in index when creating Pandas.Dataframe

在创建 Dataframe 时,我正在写信寻求帮助。

代码如下所示:

import pandas as pd
import numpy as np
data = np.array([[1,2,3],[4,5,6],[2,6,3],[np.nan,np.nan,np.nan]])
index = {'M','B','C','D'}
columns = {'x','y','z'}
df_test = pd.DataFrame(data,index=index,columns=columns)
print('df_test is \n', df_test)

结果是

     z    x    y
 B  1.0  2.0  3.0
 C  4.0  5.0  6.0
 M  2.0  6.0  3.0
 D  NaN  NaN  NaN

但是我想保持索引和数据中的顺序,即我想得到结果为:(请注意索引中的顺序)

    z    x    y
M  1.0  2.0  3.0
B  4.0  5.0  6.0
C  2.0  6.0  3.0
D  NaN  NaN  NaN

谁能帮助我? 谢谢。

为了保持顺序,您应该使用列表作为index (而不是集合):

index = ['M','B','C','D']

如果列的顺序也很重要:

columns = ['x','y','z']

使用 sort_index,如下:

df_test.sort_index(level=['M','B','C','D'])

您也可以直接使用列表的名称,而不是整个列表,这在它有很多行时很有用,如下所示:

df_test.sort_index(level=your_index)

在这种情况下在哪里

your_index = ['M','B','C','D']

(避免像您在问题中所做的那样将 your_index 命名为“索引”,因为该名称已在 Python 中使用)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM