在pandas中编辑标题(python)

时间:2017-11-24 12:04:23

标签: python pandas numpy

我有如下所示的数据,

x = [1,2,3,4,5]
y = [6,7,8,9,0]
z = [11,12,12,56,6]

现在,我想将此数据导出到excel文件。为此,我使用了以下代码

import numpy as np
import pandas as pd

data = pd.DataFrame({"x":[1,2,3,4,5],
                     " ":np.nan,
                     "y":[6,7,8,9,0],
                     " ":np.nan,
                     "z":[11,12,12,56,6]})
data.to_excel('test_file.xlsx', index= False)

在这里,我使用np.nan创建一个空列。

新的excel文件如图所示

enter image description here

但是,我想显示如下图所示的数据 enter image description here

请帮忙。谢谢。

2 个答案:

答案 0 :(得分:1)

您的列表字典包含重复的列名' '时出现问题,并且不允许使用每个设计。因此可以通过column_stack创建DataFrame并定义列名称:

empty =  [np.nan] * len(x)
data = pd.DataFrame(np.column_stack([x,empty,z,empty,y]), columns= ['x','','y','','z'])

或者有点破解 - 首先在dict然后rename创建所有唯一列:

data = pd.DataFrame({"x":x,
                     "empty1":np.nan,
                     "y":y,
                     "empty2":np.nan,
                     "z":z}, columns=['x','empty1','y','empty2','z'])
data = data.rename(columns={'empty1':'', 'empty2':''})         

print (data)
     x         y        z
0  1.0 NaN  11.0 NaN  6.0
1  2.0 NaN  12.0 NaN  7.0
2  3.0 NaN  12.0 NaN  8.0
3  4.0 NaN  56.0 NaN  9.0
4  5.0 NaN   6.0 NaN  0.0


data.to_excel('test_file.xlsx', index= False)

答案 1 :(得分:0)

你也可以尝试这种方式(没有成本黑客:))

data = pd.DataFrame({"x": [1,2,3,4,5],
                     "": np.nan,
                     "y": [6,7,8,9,0],
                     None: np.nan,
                     "z": [11,12,12,56,6]})