enter image description here应用以下代码时,我在QSTS_ID的整个列中都得到NAN值

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


我想复制整个QSTS_ID列并将其附加在末尾。我还必须用句号分隔它并应用新的标题

最佳答案

问题是,如果添加参数expand=True它返回具有一列或多列的DataFrame,那么分配return NaN s。

解决方案是将具有joinconcat的新列添加到原始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)

关于python - 我想提取QSTS_ID列并以句号分隔,并将其作为单独的列附加到现有列表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54230122/

10-12 20:57