我正在学习一些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,就像我一样。
非常感谢所有帮助!
干杯
丹
答案 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