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

Если кто-то из вас использует продукт Intellij, решение для этого следующее:

  1. Перейдите в раздел «Настройки»> «Редактор»> «Стиль кода»
  2. здесь для выбора типа файла, связанного с вашей проблемой. Но, скорее всего, вам нужно выбрать Other File Types.
  3. В открывшейся вкладке отметьте флажок для Use tab character и будьте осторожны, значения Tab size и Indent должны быть 4.
1
задан Rakesh 17 January 2019 в 06:25
поделиться

1 ответ

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

Решение - добавить новые столбцы с 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)

Образец :

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)
0
ответ дан jezrael 17 January 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: