如何将冒号前的每一行作为列和值转换为列名

2024-05-19 01:08:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读一个名为kids_csv的文件,带有header=None选项,这个文件包含每一行的特定字母,以及:ab:ad:等,我希望整行成为一列,其中起始行的ab:需要指定为列名

下面是我的数据框:

>>> df = pd.read_csv("kids_cvc",error_bad_lines=False, header=None)
b'Skipping line 2: expected 13 fields, saw 14\nSkipping line 5: expected 13 fields, saw 14\nSkipping line 6: expected 13 fields, saw 16\nSkipping line 7: expected 13 fields, saw 14\nSkipping line 8: expected 13 fields, saw 15\nSkipping line 9: expected 13 fields, saw 14\nSkipping line 20: expected 13 fields, saw 19\nSkipping line 21: expected 13 fields, saw 16\nSkipping line 23: expected 13 fields, saw 14\nSkipping line 24: expected 13 fields, saw 16\nSkipping line 27: expected 13 fields, saw 14\n'
>>> df
           0      1      2       3       4       5       6        7       8             9       10      11      12
0     ab: cab    dab    gab     jab     lab     nab     tab     blab    crab          grab    scab    stab    slab
1     ad: bad    dad    had     lad     mad     pad     sad      tad    glad           NaN     NaN     NaN     NaN
2     an: ban    can    fan     man     pan     ran     tan      van    clan          plan    scan    than     NaN
3     ed: bed    fed    led     red     wed    bled    bred     fled    pled          sled    shed     NaN     NaN
4     eg: beg    keg    leg     peg     NaN     NaN     NaN      NaN     NaN           NaN     NaN     NaN     NaN
5     et: bet    get    jet     let     met     net     pet      set     vet           wet     yet    fret     NaN
6     en: den    hen    men     pen     ten    then    when      NaN     NaN           NaN     NaN     NaN     NaN
7   eck: beck   deck   neck    peck   check   fleck   speck    wreck     NaN           NaN     NaN     NaN     NaN
8   ell: bell   cell   dell    jell    sell    tell    well     yell   dwell         shell   smell   spell   swell
9     it: bit    fit    hit     kit     lit     pit     sit      wit    knit          quit    slit    spit     NaN
10    id: bid    did    hid     kid     lid     rid    skid     slid     NaN           NaN     NaN     NaN     NaN
11    ig: big    dig    fig     gig     jig     pig     rig      wig     zig          twig     NaN     NaN     NaN
12    im: dim    him    rim    brim    grim    skim    slim     swim    trim          whim     NaN     NaN     NaN
13  ish: fish   dish   wish   swish     NaN     NaN     NaN      NaN     NaN           NaN     NaN     NaN     NaN
14    ob: cob    gob    job     lob     mob     rob     sob     blob    glob          knob    slob    snob     NaN
15    og: bog    cog    dog     fog     hog     jog     log     blog    clog          frog     NaN     NaN     NaN
16  ock: dock   lock   rock    sock    tock   block   clock    flock    rock   shock smock   stock     NaN     NaN
17    ut: but    cut    gut     hut     jut     nut     rut     shut     NaN           NaN     NaN     NaN     NaN
18    ub: cub    hub    nub     rub     sub     tub    grub     snub    stub           NaN     NaN     NaN     NaN
19    ug: bug    dug    hug     jug     lug     mug     pug      rug     tug          drug    plug    slug    snug
20    um: bum    gum    hum     mum     sum    chum    drum     glum    plum          scum    slum     NaN     NaN
21    un: bun    fun    gun     nun     pun     run     sun     spun    stun           NaN     NaN     NaN     NaN
22    ud: bud    cud    dud     mud    spud    stud    thud      NaN     NaN           NaN     NaN     NaN     NaN
23  uck: buck   duck   luck    muck    puck    suck    tuck     yuck   chuck         cluck   pluck   stuck   truck
24  ush: gush   hush   lush    mush    rush   blush   brush    crush   flush         slush     NaN     NaN     NaN

当我使用转置时,它会显示如下:

>>> df.T
         0        1        2        3        4        5        6          7   ...       17       18       19       20       21       22         23         24
0   ab: cab  ad: bad  an: ban  ed: bed  eg: beg  et: bet  en: den  eck: beck  ...  ut: but  ub: cub  ug: bug  um: bum  un: bun  ud: bud  uck: buck  ush: gush
1       dab      dad      can      fed      keg      get      hen       deck  ...      cut      hub      dug      gum      fun      cud       duck       hush
2       gab      had      fan      led      leg      jet      men       neck  ...      gut      nub      hug      hum      gun      dud       luck       lush
3       jab      lad      man      red      peg      let      pen       peck  ...      hut      rub      jug      mum      nun      mud       muck       mush
4       lab      mad      pan      wed      NaN      met      ten      check  ...      jut      sub      lug      sum      pun     spud       puck       rush
5       nab      pad      ran     bled      NaN      net     then      fleck  ...      nut      tub      mug     chum      run     stud       suck      blush
6       tab      sad      tan     bred      NaN      pet     when      speck  ...      rut     grub      pug     drum      sun     thud       tuck      brush
7      blab      tad      van     fled      NaN      set      NaN      wreck  ...     shut     snub      rug     glum     spun      NaN       yuck      crush
8      crab     glad     clan     pled      NaN      vet      NaN        NaN  ...      NaN     stub      tug     plum     stun      NaN      chuck      flush
9      grab      NaN     plan     sled      NaN      wet      NaN        NaN  ...      NaN      NaN     drug     scum      NaN      NaN      cluck      slush
10     scab      NaN     scan     shed      NaN      yet      NaN        NaN  ...      NaN      NaN     plug     slum      NaN      NaN      pluck        NaN
11     stab      NaN     than      NaN      NaN     fret      NaN        NaN  ...      NaN      NaN     slug      NaN      NaN      NaN      stuck        NaN
12     slab      NaN      NaN      NaN      NaN      NaN      NaN        NaN  ...      NaN      NaN     snug      NaN      NaN      NaN      truck        NaN

[13 rows x 25 columns]

需要什么:

如下图所示

        ab        ad       an       ed       eg       et       en        eck  
0       cab      bad      ban      bed      beg      bet      den       beck  
1       dab      dad      can      fed      keg      get      hen       deck  
2       gab      had      fan      led      leg      jet      men       neck  
3       jab      lad      man      red      peg      let      pen       peck  
4       lab      mad      pan      wed      NaN      met      ten      check  
5       nab      pad      ran     bled      NaN      net     then      fleck  
6       tab      sad      tan     bred      NaN      pet     when      speck  
7      blab      tad      van     fled      NaN      set      NaN      wreck  
8      crab     glad     clan     pled      NaN      vet      NaN        NaN  
9      grab      NaN     plan     sled      NaN      wet      NaN        NaN  
10     scab      NaN     scan     shed      NaN      yet      NaN        NaN  
11     stab      NaN     than      NaN      NaN     fret      NaN        NaN  
12     slab      NaN      NaN      NaN      NaN      NaN      NaN        NaN  

Tags: fieldsdfablinelabnanadbad
1条回答
网友
1楼 · 发布于 2024-05-19 01:08:27

试试这个:

df = pd.read_clipboard(sep='\s\s+') #Import your csv here
df[['i', '0']] = df['0'].str.split(':', expand=True) #Split first column on ':'
df.set_index('i').T  #set_index and transpose

输出:

i     ab    ad    an    ed    eg    et    en    eck    ell    it  ...    og          ock    ut    ub    ug    um    un    ud    uck    ush
0    cab   bad   ban   bed   beg   bet   den   beck   bell   bit  ...   bog         dock   but   cub   bug   bum   bun   bud   buck   gush
1    dab   dad   can   fed   keg   get   hen   deck   cell   fit  ...   cog         lock   cut   hub   dug   gum   fun   cud   duck   hush
2    gab   had   fan   led   leg   jet   men   neck   dell   hit  ...   dog         rock   gut   nub   hug   hum   gun   dud   luck   lush
3    jab   lad   man   red   peg   let   pen   peck   jell   kit  ...   fog         sock   hut   rub   jug   mum   nun   mud   muck   mush
4    lab   mad   pan   wed   NaN   met   ten  check   sell   lit  ...   hog         tock   jut   sub   lug   sum   pun  spud   puck   rush
5    nab   pad   ran  bled   NaN   net  then  fleck   tell   pit  ...   jog        block   nut   tub   mug  chum   run  stud   suck  blush
6    tab   sad   tan  bred   NaN   pet  when  speck   well   sit  ...   log        clock   rut  grub   pug  drum   sun  thud   tuck  brush
7   blab   tad   van  fled   NaN   set   NaN  wreck   yell   wit  ...  blog        flock  shut  snub   rug  glum  spun   NaN   yuck  crush
8   crab  glad  clan  pled   NaN   vet   NaN    NaN  dwell  knit  ...  clog         rock   NaN  stub   tug  plum  stun   NaN  chuck  flush
9   grab   NaN  plan  sled   NaN   wet   NaN    NaN  shell  quit  ...  frog  shock smock   NaN   NaN  drug  scum   NaN   NaN  cluck  slush
10  scab   NaN  scan  shed   NaN   yet   NaN    NaN  smell  slit  ...   NaN        stock   NaN   NaN  plug  slum   NaN   NaN  pluck    NaN
11  stab   NaN  than   NaN   NaN  fret   NaN    NaN  spell  spit  ...   NaN          NaN   NaN   NaN  slug   NaN   NaN   NaN  stuck    NaN
12  slab   NaN   NaN   NaN   NaN   NaN   NaN    NaN  swell   NaN  ...   NaN          NaN   NaN   NaN  snug   NaN   NaN   NaN  truck    NaN

相关问题 更多 >

    热门问题