Python,在 3 列中组合独特的内容(Excel 电子表格)

马克·K

美好的一天。Excel 电子表格中有一些数据,结构如下:

在此处输入图片说明

它希望将 3 列中的唯一值放在一起,很好地形成如下格式:

Mike to America for Hotel; Meal

Kate to Europe; America for Transport

等等

我只能锻炼 2 列。

the_file = xlrd.open_workbook("testing.xlsx")
the_sheet = the_file.sheet_by_name("Sheet1")

products = defaultdict(list)

for row_index in range(1, the_sheet.nrows):
    products[str(the_sheet.cell(row_index, 0).value)].append(the_sheet.cell(row_index, 1).value) 

for product, v in products.items()
    print product + " to " + ";".join(set(v))

输出是:

Mike to America
Hulk to America;Asia
Kate to Europe;America
Dave to Europe
Jack to Europe;America;Asia
Luci to Asia

使线条同时为 3 列工作的方法是什么?
谢谢你。

梯级

认为有一种更pythonic的方式来做到这一点,但这就是我想出的:

from collections import defaultdict


l = [
    ['mike', 'america', 'hotel'],
    ['mike', 'america', 'meal'],
    ['jack', 'america', 'meal'],
    ['jack', 'europe', 'hotel'],
    ['jack', 'america', 'bonus'],
    ['jack', 'asia', 'hotel'],
    ['dave', 'europe', 'meal'],
]

people = defaultdict(list)
people_places = defaultdict(list)

for row_index in range(len(l)):
    people[l[row_index][0]].append(l[row_index][1])
    people_places[l[row_index][0] + '|' + l[row_index][1]].append(l[row_index][2])

for p, k in people.items():
    activity = []
    for place in k:
        activity += people_places[p + '|' + place]
    print '{} to {} for {}'.format(
        p,
        ';'.join(set(k)),
        ';'.join(set(activity))
    )

您可以将代码转换为直接使用电子表格行和单元格,或者l首先使用以下内容提取列表

l = []
with xlrd.open_workbook("testing.xlsx") as the_file:
    the_sheet = the_file.sheet_by_name("Sheet1")

    for row_index in range(1, the_sheet.nrows):
        l.append([
            the_sheet.cell(row_index, 0).value, 
            the_sheet.cell(row_index, 1).value, 
            the_sheet.cell(row_index, 2).value])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将电子表格的列存储在Python字典中

使用pyexcel python在电子表格中添加行数据

如何将Python数组写入Excel电子表格

如何使用Python重命名电子表格中的工作表名称?

使用Python更新Excel电子表格中的链接

如何在pandas / python中查看Excel电子表格的公式?

自动刷新Excel电子表格的Python脚本

用python处理Excel电子表格

筛选Excel电子表格以使用Python获取单元格值

Python 3-以电子表格格式打印到控制台,以便我可以剪切和粘贴列

如何使用电子表格或等效表格在python中存储列表?

Google电子表格中单元格文本的sha3-256

从Python中的链接下载电子表格

Python Pandas-按空行拆分Excel电子表格

Python-在电子表格中显示前3行

将PDF电子表格数据提取到Python数据结构中

用电子表格中的输出编写python程序

Python脚本没有将整个行放在Excel电子表格中

Python-将HTML文件中的内容输出到电子表格

Python:将数据爬到Excel电子表格中时没有回溯

在python中将数据添加到Excel电子表格时丢失宏

尝试使用Python从Excel电子表格中删除第一行

按日期对大型Excel电子表格进行排序-第3次迭代失败

将多列插入谷歌电子表格api PYTHON

使用 python openpyxl 写入 Excel 电子表格(字符串搜索)

Python - 用于 Excel 电子表格或 csv 的字典数组

Python Pandas:输出到excel“.xls”电子表格,只需覆盖选定的工作表

Python 谷歌电子表格更新在错误的列中

如何将 Python 数组写入单个 Excel 电子表格单元格