Эй, ребята, я пытаюсь добавить пустой столбец после столбца 3ed в моем фрейме данных, который содержит 5 столбцов. пример

Fname,Lname,city,state,zip

mike,smith,new york,ny,11101

Это то, что у меня есть, и ниже я собираюсь показать, как я хочу, чтобы это выглядело.

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

mike,smith,,new york,ny,11101

Я не хочу заполнять этот столбец данными, все, что я хочу сделать, это добавить дополнительный столбец в заголовок, и эти данные будут иметь пустой столбец, называемый «,,». Я видел примеры, когда новый столбец добавляется в конец фрейма данных, но не в определенном месте.

2
Klaidi Ziaj 2 Май 2019 в 20:40

3 ответа

Лучший ответ

Ты должен использовать

df.insert(loc, column, value)

Где loc - это индекс, а столбец - имя столбца и его значение.

Для пустого столбца

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

5
nassim 2 Май 2019 в 17:49

Вы можете просто пойти на 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
0
singh_ap 2 Май 2019 в 18:03

Использовать reindex или фильтрацию столбцов

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

df['z']= np.nan

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

ИЛИ

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
1
Scott Boston 2 Май 2019 в 17:48