Python Pandas在数据框的中间添加空列

时间:2019-05-02 17:40:21

标签: python pandas

伙计们,我想在包含5列的数据框中的3ed列之后添加一个空列。 例子

Fname,Lname,city,state,zip

mike,smith,new york,ny,11101

这就是我所拥有的,下面我将展示我想要它的外观。

Fname,Lname,new column,city,state,zip

mike,smith,,new york,ny,11101

我不想用我想要做的数据填充该列,就是在标题中添加额外的列,并且该数据将具有空白列,也就是','。 我已经看到了将新列添加到数据帧末尾但未放置在特定位置的示例。

3 个答案:

答案 0 :(得分:3)

您应该使用

df.insert(loc, column, value)

其中loc为索引,列为列名,其值为列值

用于空列

df.insert(loc=2, column='new col', value=['' for i in range(df.shape[0])])

答案 1 :(得分:1)

使用reindex或列过滤

df = pd.DataFrame(np.arange(50).reshape(10,-1), columns=[*'ABCDE'])

df['z']= np.nan

df[['A','z','B','C','D','E']]

OR

df.reindex(['A','z','B','C','D','E'], axis=1)

输出:

    A   z   B   C   D   E
0   0 NaN   1   2   3   4
1   5 NaN   6   7   8   9
2  10 NaN  11  12  13  14
3  15 NaN  16  17  18  19
4  20 NaN  21  22  23  24
5  25 NaN  26  27  28  29
6  30 NaN  31  32  33  34
7  35 NaN  36  37  38  39
8  40 NaN  41  42  43  44
9  45 NaN  46  47  48  49

答案 2 :(得分:0)

您可以简单地df.insert()

import pandas as pd
data = {'Fname': ['mike'], 
        'Lname': ['smith'], 
        'city': ['new york'],
        'state': ['ny'],
        'zip': [11101]}
df = pd.DataFrame(data) 
df.insert(1, "Address", '', True)
print(df)

输出:

  Fname Address  Lname      city state    zip
0  mike          smith  new york    ny  11101