问题
I am reading a file called kids_csv with header=None option, this file contains every row with specific alphabets along with : like ab:, ad: etc, I want the entire row to become a column where like ab: that's starting off the line needs to be designated as a column name.
below is my dataframe:
>>> 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
When i am using transpose it get below:
>>> 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]
What is desired:
Desired like below..
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
回答1:
Try this:
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
Output:
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
来源:https://stackoverflow.com/questions/64212116/how-to-convert-every-row-as-column-and-value-before-colon-into-column-name