1. 程式人生 > 其它 >python基礎-python處理資料

python基礎-python處理資料

技術標籤:python

1、資料排序,python有兩種選擇。原地排序,排序後的資料替換原來的資料,原來的順序會丟失,對於列表,sort()方法提供原地排序;複製排序,返回原資料的有序副本,原資料的順序依然保留,sorted()支援複製排序。

2、資料排序示例

#filename列表形式檔名
def deal_file(filename):
   datalist=[]
   try:
     for item_name in filename:
       #rb:讀二進位制模式
       with open(item_name,'r') as out_file:
         for item in out_file: #取出整個檔案資料
           print(item)
           #.split(',')生成列表
           #item.strip().split(',') 方法串聯
           datalist.extend(item.strip().split(',')) #extend列表合併
         #data=out_file.readline() #readline只能讀取一行資料
         #print(data)      
   except IOError as err:
     print('file error:'+str(err))
   print(datalist)
   #統一時間格式
   new_data=[]
   for str_time in datalist:
     new_data.append(deal_time(str_time))
  
   print(new_data)
   #對資料列表排序(函式串聯)
   print(sorted(new_data))
#處理時間函式(統一格式,將-或:替換成.):3:4->3.4;3-4->3.4
def deal_time(time_string):
   if '-' in time_string:
     splitter='-'
   elif ':' in time_string:
     splitter=':'
   else:
     splitter='.'
   (mins,secs)=time_string.split(splitter)
   #補位數
   if len(mins)<2:
     mins='0'+mins
   if len(secs)<2:
     secs='0'+secs
   return (mins+'.'+secs)

3、排序方法示例程式碼修改,簡化統一時間格式呼叫(使用列表推導)

#filename列表形式檔名
def deal_file(filename):
   datalist=[]
   try:
     for item_name in filename:
       #rb:讀二進位制模式
       with open(item_name,'r') as out_file:
         for item in out_file: #取出整個檔案資料
           print(item)
           #.split(',')生成列表
           #item.strip().split(',') 方法串聯
           datalist.extend(item.strip().split(',')) #extend列表合併
         #data=out_file.readline() #readline只能讀取一行資料
         #print(data)      
   except IOError as err:
     print('file error:'+str(err))
   print(datalist)
   #統一時間格式
   new_data=[deal_time(str_time) for str_time in datalist]
   print(new_data)
   #對資料列表排序(函式串聯)
   print(sorted(new_data))
​

[sort()與sorted()方法預設升序排序,若想要進行降序排序,需要傳入引數reverse=True]

4、使用集合刪除重複項,集合中的資料項是無序且不允許重複的。

datalist=[10.6,11,6,10.6,10]
distances=set(datalist)
print(distances)
>>>輸出結果
{10, 10.6, 11, 6} #直接會去掉重複的10.6

此目錄會不定期更新,喜歡我的文章希望和我一起成長的寶寶們,可以搜尋並新增公眾號TryTestwonderful,或者掃描下方二維碼新增公眾號