首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将字符串传输到数据帧Python

将字符串传输到数据帧Python
EN

Stack Overflow用户
提问于 2018-01-21 14:27:20
回答 1查看 81关注 0票数 1

我有一个大字符串,我必须把它转换成一个数据帧。例如,字符串是:

meals_string =“开胃菜南方炒鹌鹑配绿、黑浆果、山核桃和蓝芝士14.00公园大道切碎的沙拉山羊Feta Cheese、Nigoise Olive、腌制的白色.主菜辣味硬壳加拿大鲑鱼、马铃薯油炸片、腌制黄瓜、27点香菇烤虾、烤番茄Vinaigrette & Sweet Corn 29.50”

代码语言:javascript
运行
复制
meals = meals_string.splitlines()

,这就给了我一个列表,但是我不得不用3列将字符串转换成数据格式:分类;Meal_name;价格。

EN

回答 1

Stack Overflow用户

发布于 2018-01-21 23:09:25

可以为您的字符串构建一个相对简单的解析器,并直接传递给pandas.DataFrame,如下所示:

代码:

代码语言:javascript
运行
复制
def meal_string_parser(meal_string):
    category = ''
    meal = []
    price = 0
    for word in meal_string.split():
        if word:
            try:
                price = float(word)
                yield category, ' '.join(meal), price
                meal = []
            except ValueError:
                # this is not a number, so not a price
                if word.upper() == word and word.isalnum():
                    # found category
                    category = word
                else:
                    meal.append(word)

    if meal:
        yield category, ' '.join(meal), price

测试代码:

代码语言:javascript
运行
复制
meals_string = """
APPETIZERS 
    Southern Fried Quail with Greens,Huckleberries,Pecans & Blue Cheese 14.00
    Park Avenue Cafe Chopped Salad Goat Feta Cheese,Nigoise Olives,Marinated White 13.00 
ENTREES
    Horseradish Crusted Canadian Salmon,Potato Fritters, Marinated Cucumbers,Chive Vinaigrette 27.00
    Sautéed Prawns with Mushroom Tortellini,Grilled Tomato Vinaigrette & Sweet Corn 29.50
"""

import pandas as pd
df = pd.DataFrame(meal_string_parser(meals_string),
                  columns='Category Meal_name Price'.split())
print(df)

结果:

代码语言:javascript
运行
复制
     Category                                          Meal_name  Price
0  APPETIZERS  Southern Fried Quail with Greens,Huckleberries...   14.0
1  APPETIZERS  Park Avenue Cafe Chopped Salad Goat Feta Chees...   13.0
2     ENTREES  Horseradish Crusted Canadian Salmon,Potato Fri...   27.0
3     ENTREES  Sautéed Prawns with Mushroom Tortellini,Grille...   29.5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48367861

复制
相关文章

相似问题

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