描述:
下午快下班的时候公司供应链部门的同事跑过来问我能不能以程序的⽅法帮他解决⼀些excel表格每周都需要⼿⼯重复做的事情,Excel 是数据处理最常⽤的办公⼯具对于市场、运营都应该很熟练。哈哈,然⽽程序员是不怎么会⽤excel的。下⾯给⼤家介绍⼀下pandas, Pandas是⼀个强⼤的分析结构化数据的⼯具集;它的使⽤基础是Numpy(提供⾼性能的矩阵运算);⽤于数据挖掘和数据分析,同时也提供数据清洗功能。
具体需求:
找出相同的数字,把与数字对应的英⽂字母合并在⼀起。期望最终⽣成值:TAOCGQ I 1TAOCGQ WY 2
TAOCGQ BHLPQGRN 3TAOCGQ VUE 4TAOCGQ Z 5代码实现:
import pandas as pd
df = pd.read_excel(r'E:\\代码\ables_results\\价格表.xlsx')pd_result = df.to_dict(orient='split')
'''舱位信息列表['航线', 'W', 'I', 'Y', 'B', 'H', 'L', 'P', 'Q', 'G', 'V', 'U', 'Z', 'R', 'N', 'E', 'K']'''cabin_list = pd_result['columns']
'''航线信息及价格列表 [['LHW-ZUH', 2.0, 0.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 0] ]'''data_lists = pd_result['data']for data in data_lists:
for number in range(0,20):
''' 循环航线信息取出列表的索引id'''
idxs = [i for i, x in enumerate(data) if x == number] if idxs: #索引列表 news_data_list = []
for idx in idxs: #循环索引列表
news_data_list.append(cabin_list[idx])
cabin_merge = ''.join(news_data_list) # 将多个舱位合并
aviation_rebate = idxs[0] # 取出返点价格,因为有多个索引,只取第⼀个就⾏ air_route = str(data[0]).split('-') #航线 LHW-ZUH dpt = air_route[0] # 出发城市 arr = air_route[1] # 到达城市
result = dpt + arr + ',' + cabin_merge + ',' + str(int(data[aviation_rebate])) '''
最终结果:
['LHWZUH', 'IK', '0']
['LHWZUH', 'WYBHRNE', '2'] ['LHWZUH', 'LPQGVUZ', '3'] ['ZUHLHW', 'IK', '0'] '''
print(result.split(','))
程序执⾏结果:
['TAOCGQ', 'I', '1']['TAOCGQ', 'WY', '2']
['TAOCGQ', 'BHLPQGRN', '3']['TAOCGQ', 'VUE', '4']['TAOCGQ', 'Z', '5']
总结
到此这篇关于利⽤Pandas读取表格⾏数据判断是否相同的⽂章就介绍到这了,更多相关Pandas读取表格⾏数据内容请搜索以
前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
因篇幅问题不能全部显示,请点此查看更多更全内容