首页 > 解决方案 > 如何将一个熊猫文本列拆分为固定数量的列

问题描述

我有一个数据框,其中一个文本列由“/”分隔,并希望通过拆分该列来创建几列。我知道我可以通过使用df['col'].str.split('/ ', expand=True)]. 但是,就我而言,无论我得到多少拆分,我都想创建固定数量的列。例如,我将从以下 df 中创建 4 列,如果 split 没有返回足够的块,则用 Nan 填充最后的列:

    col1                             part_0  part_1  part2  part3
0  "a/b"            =>            0   "a"     "b"     Nan    Nan
1  "a/b/c"                        1   "a"     "b"     "c"    Nan  

我还没有找到任何允许我这样做的解决方案,因为它们都根据最大拆分创建列数,这对我不起作用。你能帮助我吗?谢谢!

标签: pythonpandas

解决方案


使用DataFrame.reindexDataFrame.add_prefix

df = pd.DataFrame({'col':['a/b','a/b/c']})

N = 4
df1 = df['col'].str.split('/', expand=True).reindex(range(N), axis=1).add_prefix('part_')
print (df1)
  part_0 part_1 part_2  part_3
0      a      b   None     NaN
1      a      b      c     NaN

推荐阅读