Python 按标签对熊猫列排序有困难,似乎没有方法适合我?

Python 按标签对熊猫列排序有困难,似乎没有方法适合我?,python,pandas,Python,Pandas,作为一个更大项目的一部分,我需要收集大量数据,修正任何nan值,组织它们,然后绘制它们。熊猫似乎是这样做的理想包装。然而,我很难让我的最新测试批正常工作 我的列标签都是数字,所以按升序排序应该不难,但出于某种原因python拒绝这样做。这会导致使用matplotlib进行打印时出现问题,因为我正在使用meshgrid函数在三维中打印二维曲面。据我所知,网格网格函数取决于在绘制连续点之间的连接时向其提供数据的顺序。当我不首先整理数据时,我肯定会得到一些非常奇怪的图。标签是以浮动的形式进入的,这有什

作为一个更大项目的一部分,我需要收集大量数据,修正任何nan值,组织它们,然后绘制它们。熊猫似乎是这样做的理想包装。然而,我很难让我的最新测试批正常工作

我的列标签都是数字,所以按升序排序应该不难,但出于某种原因python拒绝这样做。这会导致使用matplotlib进行打印时出现问题,因为我正在使用meshgrid函数在三维中打印二维曲面。据我所知,网格网格函数取决于在绘制连续点之间的连接时向其提供数据的顺序。当我不首先整理数据时,我肯定会得到一些非常奇怪的图。标签是以浮动的形式进入的,这有什么变化吗

My pandas dataframe首先使用嵌套字典创建:

def create_table(nested_dict):
"""Takes a dict of dicts where each outer key is a Tb value, each inner 
key is a Sbma value and innermost value is a
xsection value, then creates a table from them"""

data_table = df.from_dict(nested_dict)
data_table = data_table.transpose()
data_table = data_table.reindex(sorted(data_table.columns), axis=1)
data_table = data_table.reindex(sorted(data_table.index), axis=0)
data_table = data_table.sort_index(axis = 1)
       
return data_table
这可以成功地对行进行排序(虽然只有3行,所以这并不意味着太多),并转置数据帧。但当谈到专栏时,它似乎有一些奇怪的事情发生。打印出来我有:

             0.5       1.0       1.5      10.0      10.5      11.0      11.5  \
0.9000 0.266542 0.085487 0.051862 0.027435 0.027684 0.027948 0.028239
0.9500 0.261763 0.084601 0.051343 0.027570 0.027816 0.028064 0.028327
0.9999 0.255504 0.082071 0.049922 0.027659 0.027885 0.028145 0.028445

        12.0      12.5      13.0  ...       5.0       5.5       6.0  \
0.9000 0.028544 0.028875 0.029229。。。0.027334 0.027015 0.026793
0.9500 0.028633 0.029008 0.029321 ... 0.027317 0.027025 0.026882
0.9999 0.028636 0.028956 0.029299 ... 0.027136 0.026886 0.026740

         6.5       7.0       7.5       8.0       8.5       9.0       9.5  
0.9000 0.026603 0.026628 0.026756 0.026827 0.026950 0.027081 0.027284
0.9500 0.026757 0.026731 0.026785 0.026866 0.027007 0.027170 0.027372
0.9999 0.026689 0.026708 0.026764 0.026883 0.027023 0.027233 0.027404

[3行x 62列]


“…”中包含的列的值高于显示的值,我不确定发生了什么!(我还意识到我的函数中有两行用于对列进行重新排序,第二行只是添加了,因为第一行不再工作!)

你想对索引进行两次排序,对吗?如果您的数据表在第
df.from\u dict(nested\u dict)
行之后正确,那么这应该可以为您解决问题

data_table = data_table.sort_index(axis=0).sort_index(axis=1)
data_table 

请试一试。

结果是我没有检查标签是否是字符串或不够彻底,一旦我做了你的建议,谢谢!