首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Excel (CSV) -将头数据转换为具有重复行的行映射

Excel (CSV) -将头数据转换为具有重复行的行映射
EN

Stack Overflow用户
提问于 2013-12-17 15:15:35
回答 2查看 393关注 0票数 0

我有基于Excel的数据集,需要转换。当我学习Python时,我会请求一个基于Python的解决方案,然后可以读取/修改代码。我对基于Excel或CSV的输入/输出都没有意见。

这是我的数据看起来像

通道条件 Value1 Value2 Value3 3E 211(报头)

A频道B状态现场直播飞行员

A频道B状态现场直播

B通道条件C飞行员引航员

C频道条件D现场直播

,这是我想要的输出:

通道条件值(All) Status (报头)如果这没有出现在输出中,我就可以了)

A频道B状态Value1实况

A频道B状态Value2实况

通道A条件B值3导频

通道A条件B值1活

通道A条件B值2导频

A频道条件B值3活..。

基本上,它是对每个“值”的通道和条件的重复,这些值应该从列标题和它自己的数据集(Live/Pilot)中获取。

我希望得到一些帮助,因为我有大约1000行这样的转换要做。

这是一个代表我想要的图像

编辑2:截图上有一种类型。最后3行应为B频道,而不是A频道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-17 15:31:19

尝试使用xlrd模块。类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import xlrd

wb = xlrd.open_workbook(path)
sheet = wb.sheet_by_index(index)

column_list = range(0, sheet.ncols)

val_name = [sheet.cell_value(rowx=0, colx=i) for i in column_list]
channel = val_name.pop(0)
condition = val_name.pop(0)

print(channel, condition, "Value *", "Status")
lines = []
for r in range(1, sheet.nrows):
    row = [sheet.cell_value(rowx=r, colx=i) for i in column_list]
    channel = row[0]
    condition = row[1]
    values = row[2:]

    lines = zip( [channel]*len(values),
                 [condition]*len(values),
                 val_name,
                 values)
    for l in lines:
        print(l)
票数 0
EN

Stack Overflow用户

发布于 2013-12-17 15:30:27

像这样的事情应该适合工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import csv

transformed = []
with open('excel.csv', newline='') as csvfile:
    r = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in r:
        channel, condition, *vals = row
        for val in vals:
            transformed.append([channel, condition, val])

with open('transformed.csv', 'w', newline='') as csvfile:
    w = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    for row in transformed:
        w.writerow(' '.join(row))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20646640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文