[英]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.