首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自csv的python对多个字段条目

来自csv的python对多个字段条目
EN

Stack Overflow用户
提问于 2018-04-03 06:28:00
回答 3查看 45关注 0票数 0

尝试从csv获取数据,如下所示:

col1 col2

eggs sara

bacon john

ham betty

每列中的项数可以不同,并且可能不同。Col1可能有25个,col2可能有3个,或者相反,或多或少。

并遍历每个条目,以便将其输出到文本文件中,如下所示

breakfast_1

breakfast_item鸡蛋

人物sara

breakfast_2

breakfast_item培根

人物sara

breakfast_3

breakfast_item火腿

人物sara

breakfast_4

breakfast_item鸡蛋

人物约翰

breakfast_5

breakfast_item培根

人物约翰

breakfast_6

breakfast_item火腿

人物约翰

breakfast_7

breakfast_item鸡蛋

人物贝蒂

breakfast_8

breakfast_item培根

人物贝蒂

breakfast_9

breakfast_item火腿

人物贝蒂

因此,脚本需要添加“早餐”编号,并遍历每个breakfast_item和person。我知道如何创建一个组合,但不知道如何在循环中将每个组合配对?任何关于如何做到这一点的提示都会非常有帮助。

EN

回答 3

Stack Overflow用户

发布于 2018-04-03 06:42:07

如果我正确理解了您的问题,您可以这样做(从列中获取值之后,我猜您知道如何做到这一点):

代码语言:javascript
复制
from itertools import product
with open('file.txt', 'w') as f:
    for i, pair in enumerate(product(your_csv_col1, your_csv_col2)):
        f.write('breakfast_%i\nbreakfast_item %s\nperson %s\n\n' % (i, pair[0], pair[1]))
票数 0
EN

Stack Overflow用户

发布于 2018-04-03 06:46:57

我必须指出,由于输入数据的结构不合理,您的问题变得更加困难。.csv文件中的一行表示该行中的数据项之间存在某种连接。但你是在两个完全不同的领域中阅读。这应该是两个文件。但是:

代码语言:javascript
复制
import csv

food_items = []
guests = []
with open('data.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        if row['col1']:
            food_items.append(row['col1'])
        if row['col2']:
            guests.append(row['col2'])

breakfast = 0
for guest in guests:
    for food_item in food_items:
        breakfast += 1
        print (f"breakfast_{breakfast}\nbreakfast_item {food_item}\nperson {guest}\n")

编辑:Python2.7或3.5的替代print调用

代码语言:javascript
复制
        print ("breakfast_{0}\nbreafast_item {1}\nperson {2}\n".format(breakfast,food_item,guest))
票数 0
EN

Stack Overflow用户

发布于 2018-04-03 13:52:32

首先,弄清楚所有早餐的种类。

下面是一个伪代码

遍历每一行收集两个不同列表中的item和person在这两个列表上进行集合,即person,items Counter = 1 for person in persons: for item in items: Print "breafastitem", Counter Print person, item

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

https://stackoverflow.com/questions/49619655

复制
相关文章

相似问题

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