利用Pandas讀取表格行數據判斷是否相同的方法

描述:

下午快下班的時候公司供應鏈部門的同事跑過來問我能不能以程序的方法幫他解決一些excel表格每周都需要手工重復做的事情,Excel 是數據處理最常用的辦公工具對於市場、運營都應該很熟練。哈哈,然而程序員是不怎麼會用excel的。下面給大傢介紹一下pandas,  Pandas是一個強大的分析結構化數據的工具集;它的使用基礎是Numpy(提供高性能的矩陣運算);用於數據挖掘和數據分析,同時也提供數據清洗功能。

具體需求:

找出相同的數字,把與數字對應的英文字母合並在一起。

期望最終生成值:

TAOCGQ    I 1

TAOCGQ   WY 2

TAOCGQ   BHLPQGRN  3

TAOCGQ    VUE 4

TAOCGQ     Z 5

代碼實現:

import pandas as pd
df = pd.read_excel(r'E:\代碼\tables_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讀取表格行數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: