使用熊猫的字典键和值的列名称
问题描述:
我使用熊猫将某些数据转储到Excel文件中。数据是字典格式,我使用下面的代码来转储它。使用熊猫的字典键和值的列名称
df1 = pd.DataFrame.from_dict(weights_dict, orient="index")
df1.columns = ['weights']
我得到以下输出
| weights
------------------------
D1_sum | 8
U2_conv | 9
y1_maxpool | 10
y22_dropout | 11
我想一个名称设置为第一列也是如此。我怎样才能做到这一点?谢谢。
预期输出:
Layers | weights
------------------------
D1_sum | 8
U2_conv | 9
y1_maxpool | 10
y22_dropout | 11
编辑:
使用
df.index.name = 'Layer'
我得到以下结果后:
| weights
------------------------
Layer |
------------------------
D1_sum | 8
U2_conv | 9
y1_maxpool | 10
y22_dropout | 11
使用rename_axis给出以下埃罗R:
File "C:\ENV\p34\lib\site-packages\pandas\core\generic.py", line 573, in rename
result._data = result._data.rename_axis(f, axis=baxis, copy=copy)
File "C:\ENV\p34\lib\site-packages\pandas\core\internals.py", line 2233, in rename_axis
obj.set_axis(axis, _transform_index(self.axes[axis], mapper))
File "C:\ENV\p34\lib\site-packages\pandas\core\internals.py", line 3982, in _transform_index
items = [func(x) for x in index]
File "C:\ENV\p34\lib\site-packages\pandas\core\internals.py", line 3982, in <listcomp>
items = [func(x) for x in index]
TypeError: 'str' object is not callable
答
您可以使用一组列名或索引名或两个:
df = pd.DataFrame({'weights': [8, 9, 10, 11]},
index=['D1_sum', 'U2_conv', 'y1_maxpool', 'y22_dropout'])
print (df)
weights
D1_sum 8
U2_conv 9
y1_maxpool 10
y22_dropout 11
df.index.name = 'Layers1'
df.columns.name = 'Layers2'
print (df)
Layers2 weights
Layers1
D1_sum 8
U2_conv 9
y1_maxpool 10
y22_dropout 11
与rename_axis
另一种解决方案:
df = df.rename_axis('Layers1').rename_axis('Layers2', axis=1)
print (df)
Layers2 weights
Layers1
D1_sum 8
U2_conv 9
y1_maxpool 10
y22_dropout 11
df.columns.name = 'Layers'
print (df)
Layers weights
D1_sum 8
U2_conv 9
y1_maxpool 10
y22_dropout 11
df = df.rename_axis('Layers', axis=1)
print (df)
Layers weights
D1_sum 8
U2_conv 9
y1_maxpool 10
y22_dropout 11
可能的,如果需要的解决方案Excel中的列名称:
#set index name
df.index.name = 'Layer'
#reset index - index values create new column
df = df.reset_index()
print (df)
Layer weights
0 D1_sum 8
1 U2_conv 9
2 y1_maxpool 10
3 y22_dropout 11
#write df to excel, remove default index (0,1,2,3)
df.to_excel('file.xlsx', index=False)
谢谢。但是,是否有可能只有一个单元格具有“层”,并且与“权重”单元相邻,例如“|”图层|重量|' – blackbug
对不起,我没有解释它非常好。所以我编辑答案。 – jezrael
再次感谢!出于某种原因,'df.columns.name ='Layer''代码对我没有任何影响。 'df.index.name ='Layer'将图层单元格添加到列中,但格式不正确。我已经用输出更新了这个问题。 – blackbug