gpt4 book ai didi

python - Pandas Dataframe - 将字符串拆分为多列

转载 作者:行者123 更新时间:2023-12-02 03:03:52 24 4
gpt4 key购买 nike

我是 Pandas 框架的新手,我已经进行了足够的搜索来解决我的问题,但没有在网上获得太多帮助。

我有一个字符串列,如下所示,我想将其转换为单独的列。我的问题是我尝试拆分它,但它没有按照我需要的方式提供输出。

*-----------------------------------------------------------------------------*
| Total Visitor |
*-----------------------------------------------------------------------------*
| 2x Adult, 1x Adult + Audio Guide |
| 2x Adult, 2x Youth, 1x Children |
| 5x Adult + Audio Guide, 1x Children + Audio Guide, 1x Senior + Audio Guide |
*-----------------------------------------------------------------------------*

这是我用来分割字符串的代码,但没有给出预期的输出。

df = data["Total Visitor"].str.split(",", n = 1, expand = True)

分割字符串后我的预期输出应如下表所示:

*----------------------------------------------------------------------------------------------------------------*
| Adult | Adult + Audio Guide | Youth | Children | Children + AG | Senior + AG
*----------------------------------------------------------------------------------------------------------------*
| 2x Adult | 1x Adult + Audio Guide | - | - | - | -
|
| 2x Adult | - |2x Youth | 1x Children | - | -
| - | 5x Adult + Audio Guide | - | - |1x Children + Audio Guide| 1x Senior + Audio Guide |
*----------------------------------------------------------------------------------------------------------------*

我该怎么做?任何帮助或指导都会很棒。

最佳答案

想法是创建字典列表,其中包含已删除数字的键 x通过 regex -^\d+x\s+ ( ^ 是字符串的开头, \d+ 是一个或多个整数, \s+ 是一个或多个空格)并传递给 DataFrame构造函数:

import re

L =[dict([(re.sub('^\d+x\s+',"",y),y) for y in x.split(', ')]) for x in df['Total Visitor']]

df = pd.DataFrame(L).fillna('-')
print (df)
Adult Adult + Audio Guide Youth Children \
0 2x Adult 1x Adult + Audio Guide - -
1 2x Adult - 2x Youth 1x Children
2 - 5x Adult + Audio Guide - -

Children + Audio Guide Senior + Audio Guide
0 - -
1 - -
2 1x Children + Audio Guide 1x Senior + Audio Guide

另一个类似的想法被 x 分割对于来自字典键的列名称:

L = [dict([(y.split('x ')[1], y) for y in x.split(', ')]) for x in df['Total Visitor']]

df = pd.DataFrame(L).fillna('-')

关于python - Pandas Dataframe - 将字符串拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60679883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com