通过查看列值添加新列

2024-06-23 18:50:28 发布

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

我是熊猫和Python的新手-非常感谢你的回答 我在数据帧中有一列,它的值如下:df['columnname']

1 a:apple1 , b: banana1 , c: chocolate1 , d: dragonfruit1

2 a:apple2 , b: banana2 , c: chocolate2 , d: dragonfruit2

3 a:apple3 , b: banana3 , c: chocolate3 , d: dragonfruit3

4 a:apple4 , e: egg1 , b:banana4 , c: chocolate

5 a:apple5 , e: egg2 , b:banaa5 , c: chocolate5

我用了df.columnname.str.split(',',expand=true)

我得到的输出是

0---1-------2----------3 -----------   4 
------------------------------------------------------------------
1 a:apple1  b: banana1  c: chocolate1  d: dragonfruit1

2 a:apple2  b: banana2  c: chocolate2  d: dragonfruit2

3 a:apple3  b: banana3  c: chocolate3  d: dragonfruit3

4 a:apple4  e: egg1     b:banana4      c: chocolate 

5 a:apple5  e: egg2     b:banaa5       c: chocolate5 

我的预期输出应该是

0--1-------2----------  3--------      4     --------                  5
-----------------------------------------------------------------------
1 a:apple1  b: banana1  c: chocolate1  d: dragonfruit1                 0

2 a:apple2  b: banana2  c: chocolate2  d: dragonfruit2                 0

3 a:apple3  b: banana3  c: chocolate3  d: dragonfruit3                 0

4 a:apple4  b:banana4   c: chocolate4     0 or null                e: egg1    

5 a:apple5  b:banana5   c: chocolate5     0 or null                e: egg2 

如何重新排列列值并按正确顺序排列


Tags: apple1banana3banana2apple4apple3apple2banana1egg1
1条回答
网友
1楼 · 发布于 2024-06-23 18:50:28

由于字符串看起来像dicts,一种方法是将它们解析为dicts,并由此创建一个数据帧:

list_of_dicts = [{x1.split(':')[0].strip():x1.split(':')[1].strip() for x1 in x.split(',')} for x in df['columnname']]
pd.DataFrame.from_dict(list_of_dicts)
^{tb1}$

相关问题 更多 >

    热门问题