Я хочу извлечь столбец QSTS_ID и разделить его полной остановкой и добавить его в существующий список как отдельный столбец - PullRequest
0 голосов
/ 17 января 2019

введите описание изображения здесь При применении приведенного ниже кода я получаю значения NAN во всем столбце QSTS_ID

df['QSTS_ID'] = df['QSTS_ID'].str.split('.',expand=True)
df

Я хочу скопировать весь столбец QSTS_ID и добавить его в конце. Я также должен разграничить его с помощью fullstop и применить новые заголовки

1 Ответ

0 голосов
/ 17 января 2019

Проблема в том, что если добавить параметр expand=True, он вернет DataFrame с одним или несколькими столбцами, поэтому присвойте return NaN s.

Решение - добавить новые столбцы с join или concat к исходному DataFrame, также add_prefix для изменения имен новых столбцов :

df = df.join(df['QSTS_ID'].str.split('.',expand=True).add_prefix('QSTS_ID_'))

df = pd.concat([df, df['QSTS_ID'].str.split('.',expand=True).add_prefix('QSTS_ID_')], axis=1)

Если хотите, также удалите исходный столбец:

df = df.join(df.pop('QSTS_ID').str.split('.',expand=True).add_prefix('QSTS_ID_'))

df = pd.concat([df,
                df.pop('QSTS_ID').str.split('.',expand=True).add_prefix('QSTS_ID_')], axis=1)

Sample

df = pd.DataFrame({
        'QSTS_ID':['val_k.lo','val2.s','val3.t'],
        'F':list('abc')
})

df1 = df['QSTS_ID'].str.split('.',expand=True).add_prefix('QSTS_ID_')
df = df.join(df1)
print (df)
    QSTS_ID  F QSTS_ID_0 QSTS_ID_1
0  val_k.lo  a     val_k        lo
1    val2.s  b      val2         s
2    val3.t  c      val3         t

#check columns names of new columns
print (df1.columns)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...