使用python对具有不同大小列的字典中的数据帧进行重新排序

2024-04-25 05:59:02 发布

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

我正在尝试使用Pandas生成一个数据帧,如下所示:

import pandas as pd 

x='x'
y='y'
z='z'
Area='Area'
#len(coords_x)==len(coords_y)==len(coords_z)==64
#len(area[:,0])==18
my_dict = dict( x= np.asarray(coords_x),y= np.asarray(coords_y), z= 
np.asarray(coords_z), Area= area[:,0])
df = pd.DataFrame.from_dict(my_dict,   orient='index')    
df=df.transpose()
writer = ExcelWriter('my_data.xlsx')
df.to_excel(writer,'Sheet1',index=False)
writer.save()

问题是我得到的列的顺序是:“y | x | z |面积”

如何获得变量“my|dic”中指定的排序“x | y | z | Area”?我试过属性数据框列=['x'、'y'、'z'、'Area']但是没有用。(我使用的是python2.7)


Tags: 数据importpandasdfindexlenmynp
1条回答
网友
1楼 · 发布于 2024-04-25 05:59:02

考虑对列进行排序的几种方法:

# COLUMNS ARGUMENT OF DATAFRAME CONSTRUCTOR
df = pd.DataFrame(my_dict, columns=['x','y','z','Area'])   

# SPECIFYING COLUMNS AFTER DATAFRAME BUILD
df = pd.DataFrame.from_dict(my_dict, orient='index')[['x','y','z','Area']]

# REINDEXING
df = pd.DataFrame.from_dict(my_dict, orient='index').reindex(['x','y','z','Area'], axis='columns')

dict()构造Aside-dictionary通常比在{}中定义键和值慢,如answer所示。和pandas.DataFrame构造函数可以直接接收许多数据结构(dict、list、tuple、set,熊猫系列, 数字阵列)作为第一个论点。在

相关问题 更多 >