首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用python/panda将字符串拆分成列名?

如何用python/panda将字符串拆分成列名?
EN

Stack Overflow用户
提问于 2019-03-20 00:16:49
回答 1查看 61关注 0票数 0

你知道如何在python中解决这个问题吗?我想要一个数据帧,数据排列在正确的列中。

提前感谢!

下面是一个来自数据帧的字符串的示例。

“迈克尔·乔丹2015 -现任营销和间接渠道总监,理光荷兰2010 -目前篮球中心,商业专业知识中心Loopbaan Michael Jordan 2012 - 2015营销和业务发展总监,理光·奥普莱丁迈克尔·乔丹1988 - 1992哈佛大学市场营销”

首选结果

代码语言:javascript
复制
type          from     to        function                                   organization           
current       2015     present    Director Marketing & Indirect Channels    Ricoh Nederland 
current       2010     present    Owner & Consultant                        Basketball Center
old           2012     2015       Director Marketing & Business Development Ricoh
school        1988     1992       Marketing                                 Harvard                           

当前df

代码语言:javascript
复制
Name             Data
Michael Jordan   ' Huidigefuncties Michael Jordan 2015 - present Director Marketing & Indirect Channels, Ricoh Nederland 2010 - present Basketball Center, Center for Business-Expertise Loopbaan Michael Jordan 2012 - 2015 Director Marketing & Business Development, Ricoh Opleiding Michael Jordan 1988 - 1992 Marketing , Harvard '
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-20 03:43:37

这是我为这个问题做的一个解决方案

代码语言:javascript
复制
import pandas as pd
beautiful_data = 'Huidigefuncties Michael Jordan 2015 - present Director Marketing & Indirect Channels, Ricoh Nederland 2010 - present Basketball Center, Center for Business-Expertise Loopbaan Michael Jordan 2012 - 2015 Director Marketing & Business Development, Ricoh Opleiding Michael Jordan 1988 - 1992 Marketing , Harvard'
main_dict = {'type':[], 'from':[], 'to':[], 'function':[], 'organization': []}
data = beautiful_data.split(' ')
i = 0
huidi_index = data.index('Huidigefuncties')
loopbaan_index = data.index('Loopbaan')
ople_index = data.index('Opleiding')
# print(data)
while i < len(data):
    if data[i] == 'Huidigefuncties':
        line = ' '.join(data[i + 1: loopbaan_index])
        i = loopbaan_index
        print(line)
        type_data = 'current'
    elif data[i] == 'Loopbaan':
        line = ' '.join(data[i + 1: ople_index])
        i = ople_index
        print(line)
        type_data = 'old'
    elif data[i] == 'Opleiding':
        line = ' '.join(data[i+1: ])
        i = len(data)
        print(line)
        type_data = 'school'
    else:
        i += 1
    data_line = line.split('-')
    if len(data_line) == 2:
        print(type_data)
        main_dict['type'].append(type_data)
        from_data = data_line[0].strip().split(' ')[-1]
        print(from_data)
        main_dict['from'].append(from_data)
        to_data = data_line[1].strip().split(' ')[0]
        print(to_data)
        main_dict['to'].append(to_data)
        function_data = ' '.join(data_line[1].strip().split(' ')[1:-1])[:-1]
        print(function_data)
        main_dict['function'].append(function_data)
        organization_data = data_line[1].split(',')[-1].strip()
        print(organization_data)
        main_dict['organization'].append(organization_data)

    elif len(data_line) > 2:
        j = 0
        while j < len(data_line):
            register_data = data_line[j:j+2]
            if len(register_data) > 1:
                if len(register_data[0].split(' ')) > 1 and len(register_data[1].split(' ')) > 1: 
                    if j == 0:
                        print(register_data)
                        print('----------')
                        print(type_data)
                        main_dict['type'].append(type_data)
                        from_data = register_data[0].strip().split(' ')[-1]
                        print(from_data)
                        main_dict['from'].append(from_data)
                        to_data = register_data[1].strip().split(' ')[0]
                        print(to_data)
                        main_dict['to'].append(to_data)
                        function_org = register_data[1].strip().split(',')
                        function_data = ' '.join(function_org[0].split(' ')[1:])
                        print(function_data)
                        main_dict['function'].append(function_data)
                        org_data = ' '.join(function_org[1].split(' ')[:-1]).strip()
                        print(org_data)
                        main_dict['organization'].append(org_data)
                        print('-----------')
                    else:
                        print('-----------')
                        print(register_data)
                        print(type_data)
                        main_dict['type'].append(type_data)
                        from_data = register_data[0].strip().split(' ')[-1]
                        print(from_data)
                        main_dict['from'].append(from_data)
                        to_data = register_data[1].strip().split(' ')[0]
                        print(to_data)
                        main_dict['to'].append(to_data)
                        function_org = register_data[1].strip().split(',')
                        function_data = ' '.join(function_org[0].split(' ')[1:])
                        print(function_data)
                        main_dict['function'].append(function_data)
                        org_data = ' '.join(function_org[1].split(' ')).strip()
                        print(org_data)
                        main_dict['organization'].append(org_data)
                        print('-----------')
            j += 1

df = pd.DataFrame(main_dict)

已测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55245553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档