關注知乎“Py生活”,分享工作心得和生活感悟。
上週已經結束了入職培訓,從這周開始,我應該和大家分享技術知識,但進入了社會工作,我們發現:“情商比智商更重要”,因此,在以後每週的技術分享系列文章中,我都會談談我在該段時間裏的工作心得和生活感悟,算是作爲與大家共飲的“心靈雞湯”吧。
既然說,情商比智商重要,按照先後順序,當然得先和大家共飲一碗雞湯,才能開始學習吧,哈哈!這周的雞湯成分有:
!截至目前,我很贊同也非常非常喜歡這句話:“有付出,則必有回報”;
!好好工作,好好學習,好好生活;不要耍小心思,不要胡思亂想,不要悲觀。(哈哈,三個好好和三個不要,一一對應哦);
!在之前的文章中和大家分享過的一句話,今天再拿出來吧:“社會對一個有夢想、積極主動的人比較殘酷,而對一個持有佛系工作或生活態度的人則比較溫和。”
!我們工作是爲了什麼?爲了夢想,爲了自己愛的人,爲了錢............歸根結底,還不是爲了自己好好生活嘛。如果你說:“你工作是爲了自己愛的人”,請問你,你愛的人幸福,你是不是也幸福;你愛的人不幸福,你是不是也不幸福,顯然,最終還不是爲了自己,爲了自己好好生活嘛。因此我想說,健康的身體一定是好好生活的必要條件,所以朋友們,千萬不要放棄鍛鍊啊,堅持住啊!
這周主要完成了兩項任務:
- 辦公軟件及開發工具的安裝(聽上去很簡單,實際上,國家保密行業,單位內都有自己的安全軟件庫,所以安裝起來不是那麼簡單);
- 簡單的數據處理作業(也是週記的分享重點)
作業題目是這樣的,有一個csv文件(如下圖所示),共有三列數據,其中第二列和第三列數據爲統一認證號,第二列數據全爲9位數,第三列數據位數小於或等於9位數(不足9位數的,在前面補0),要求:
- 統計出現在第二列沒有出現在第三列的統一認證號及個數;
- 統計出現在第三列沒有出現在第二列的統一認證號及個數;
- 任務提交源代碼及必要的說明文檔。
針對這個題目,我們小組內用了四種語言來解決,分別是:
- python
- R語言
- SQL(MySQL)
- excel中的vb
由於我選擇的是python,所以在這裏我和大家分享一下我的解題思路:
很簡單,利用集合思想中的交集和補集就行;
對應python中的set()函數,及“&”交集運算符和“-”補集運算符。
最後我提交的作業有三個文件:Daima.py(源代碼);Readme.txt(方案說明);result.txt(結果數據)。在這裏,我把這些內容寫出來的目的有兩個:
- 讓大家參考我提交作業的流程步驟,並真誠希望得到大家的建議;
- 和大家分享我自己的編程習慣和文字撰寫水平,並真誠希望得到大家的建議。
Daima.py(源代碼)
#enconding='utf-8'
"""
代碼功能介紹:
此程序可以統計出存放在csv文件中的第二列和第三列的獨立統一認證號(9位數,不足補0),即:
*出現在第二列沒有出現在第三列中的統一認證號及其個數
*出現在第三列沒有出現在第二列中第統一認證號及其個數
"""
import pandas as pd
f=open('用戶列表.csv')
Pre_Data=pd.read_csv(f) #加載csv文件
Second_Id=list(Pre_Data.iloc[:,1]) #提取第二列數據
Third_Id=list(Pre_Data.iloc[:,2].dropna()) #提取第三列數據,並刪除缺失值
Same_Id=set(Second_Id) & set(Third_Id) #獲取兩列相同值的集合
Unique_Second_Id=set(Second_Id)-Same_Id #獲取第二列有,第三列無的數據集合
Unique_Second_Num=len(Unique_Second_Id) #獲取第二列有,第三列無的數據個數
Unique_Third_Id=set(Third_Id)-Same_Id #獲取第三列有,第二列無第數據集合
Unique_Third_Num=len(Unique_Third_Id) #獲取第三列有,第二列無的數據個數
#-----------將統計結果以字典形式保存至result.txt文件中-----------------------
file=open('result.txt','w') #以只寫形式保存數據,若無result.txt文件則創建它
#第三列數據爲浮點數,轉化爲整型後再保存
Dict_result={'第二列獨立數據有'+str(Unique_Second_Num)+'個,分別爲:':list(Unique_Second_Id),
'第三列獨立數據有'+str(Unique_Third_Num)+'個,分別爲:':[int(x) for x in Unique_Third_Id]}
file.writelines(str(Dict_result))
file.close()
Readme.txt(方案說明)
任務解決方案:
*開發環境:
pycharm、anaconda
*源代碼:
Daima.py
*數據源:
用戶列表.csv
*解決思路:
(1)提取第二列和第三列,並轉化爲需要的格式(set),主要庫爲pandas
(2)利用集合處理符號“&”和“-”,完成交集和補集的計算
(3)利用len()函數完成第二列和第三列獨立Id個數的統計
(4)將結果以字典格式保存至result.txt文件中,包括第二列和第三列唯一Id及其個數
*結論:
出現在第二列不在第三列的統一認證號有69個,出現在第三列不在第二列的統一認證號有46個;具體Id見result.txt文件
result.txt(結果數據)
截圖:
文章存在諸多不足之處,還請批評指正,謝謝!下週的工作比較繁重,相信和大家分享的內容應該也會很豐富,盡情期待!