当前位置: 首页 > 知识库问答 >
问题:

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

孟栋
2023-03-14

我尝试使用熊猫生成数据帧,如下所示:

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 |区域”

我怎么能得到这个排序"x|y|z|区域"作为指定的变量"my_dic"?我尝试了属性df.columns=['x','y','z','区域'],但没有成功。我用的是python 2.7

共有1个答案

徐博雅
2023-03-14

考虑指定列排序的几种方法

# 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()中构造字典通常比在{}中定义键和值要慢,正如这个答案所示。和pandas.DataFrame构造函数可以直接接收许多数据结构(dict、list、tuple、set、pandas.Series、numpy.array)作为第一个参数。

 类似资料:
  • 我有一个超过200列的。问题在于订单生成时的状态 我需要按如下方式重新排列这些列: 在Python中有什么方法可以做到这一点吗?

  • 我有2个不同大小的数据帧df1-df2(df2比df1有更多的行和列)。 我试图分配的值从df2['率']到df1['率'],在其中df1['单元']==df2['单元']行。 期望的输出是 我尝试了不同的方法: 只能比较相同标记的Series对象 给我假消息 我认为这来自于这样一个事实,即两个数据帧从一开始就有不同的大小。然而,我不明白为什么它应该阻止它做比较。我不确定如何从这里开始。

  • 我有两个数据帧: df1-是一个透视表,它包含列和行的总数,两者都具有默认名称“全部”df2-我通过指定值并使用与上面透视表中使用的相同的索引和列名手动创建的df。本表没有总数。 我需要将第一个数据帧乘以第二个数据帧中的值。我希望总数返回NaN,因为总数不存在于第二个表中。 当我执行乘法运算时,我得到以下错误:

  • 我需要合并两个不同大小的数据帧。较大的一个()有一列有几个重复的值(),较短的一个()有列,但其值不重复。df2还有一个ID列。我需要在中使用中的ID的新列,根据中的重复值重复。下面的例子可能会让它更清楚。 .

  • 我有一个包含几个pandas数据帧(由键标识)的dict,任何有效序列化(和干净加载)它的建议。下面是结构(一个pprint显示输出)。每个DICT['method_x_']['meas_x_']都是一个pandas数据帧。我们的目标是保存数据流,以便使用一些特定的绘图选项进行进一步的绘图。 {“Method1”: {“Meas1”: “方法2”: {“Meas1”: “Meas2”:

  • 我有一个来自目标表的固定火花数据帧顺序: 目标火花数据帧(列1字符串、列2整数、列3字符串、列4双精度) 现在,如果源数据顺序混乱: 源火花数据帧(列3字符串、列2整数、列4双精度、列1字符串)。 如何使用PySpark重新排列源DataFrame以匹配目标DataFrame的列顺序? 源Spark数据帧应按如下方式重新排序,以匹配目标数据帧: 输出: 更新了源 Spark 数据帧(col1 字符