Python Pandas订购奇数数据帧

时间:2018-03-05 22:13:17

标签: python pandas dataframe

我正在学习一些Python并且遇到过Pandas。我有一个有序的字典,我想用Pandas以更易读的格式输出。

我订购的字典有点奇怪,格式如下

{name:{Value1:float, Value2:float, Value3:string}}

其中名称因每个数据输入而异。使用标准python打印功能打印它看起来像这样:

name1: {Value1:float1a, Value2:float1b, Value3:string}
name2: {Value1:float2a, Value2:float2b, Value3:string}
...etc

然后按Value3排序,然后按Value2排序。

当我使用lowdict将其转换为DataFrame时,如下df = collections.OrderedDict(sorted(ord_dict.items(), key=lambda x_y: (x_y[1]['Value3'], x_y[1][Value2])))然后print(df)获取以下输出:

         nameA      nameB      nameC      ....
Value1   value1a    value1b    value1c    ...
Value2   value2a    value2b    value2c    ...
Value3   value3a    value3b    value3c    ...

我的问题是如何在打印时使用pandas将DataFrame重新排列为这样?:

NAME    VALUE1     VALUE2     VALUE3    
nameA   value1a    value2a    value3a
nameB   value1b    value2b    value3b
... etc for 270+ values

我尝试过调整数据框,但不确定如何使用Ordered Dict,就像我一样。

非常感谢所有帮助!

干杯

1 个答案:

答案 0 :(得分:2)

pd.DataFrame.from_dict使用index方向:

d = {
       'nameA': {'Value1': 1.0, 'Value2': 2.0, 'Value3': 'aaa'},
       'nameB': {'Value1': 3.0, 'Value2': 4.0, 'Value3': 'bbb'}
}

pd.DataFrame.from_dict(d, orient='index')

       Value1  Value2 Value3
nameA     1.0     2.0    aaa
nameB     3.0     4.0    bbb