原创 ValueError: invalid literal for int() with base 10: 'nd method Series.min of 0

記錄一個小錯誤 在計算df['YearMonth'].min()的時候 忘記了(),當加上()後即可  

原创 python的編碼與解碼

編碼:將字符串變成計算機的字節碼 解碼:將計算機的字節碼改成字符串 代碼: a = 'abcd' # 編碼: code = a.encode("UTF-8") print(code) # 解碼: test = code.decode(

原创 dataframe按季度分類(將年月改爲季度)

前幾天在寫處理數據的時候,給的日期格式是201701,但是需求要按季度分 所以最好的方法是重新加入一列,列名爲Quarter 首先設置映射字典 dic = { "2017-01": "17Q1", "2017-02":

原创 《算法導論》2.2選擇排序python實現

def choose_sort(A): for i in range(0, len(A)): min = A[i] min_index = i for j in range(i,

原创 《算法導論》2.1插入排序python實現

def insertion_sort(A): for j in range(0, len(A)): key = A[j] i = j - 1 while i > -1 and A[

原创 pandas 寫入保存csv時注意事項

1.一定要記住index=None df.to_csv(filename1, index=None) 不然寫出的csv文件會多一列來表示索引 2.fillna("unknown"),很多情況下我們都不知道文件是否爲空,如果有空值的話再gr

原创 SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

這個錯誤的原理是在副本上進行了修改,這是不安全的 在得到列名的那裏加上copy()就可以了 例如 df_A = df_B.copy 原因是一般pandas處理都是深拷貝,因爲一般的數據量都比較大,都進行淺拷貝的話處理時間太久,所以在深拷貝

原创 dataframe黑名單操作

最近在工作的時候遇到了一個問題,要求把dataframe中userid在黑名單中的id全部刪除 一開始想着用差集做,但是後面覺得可能原來的dataframe中可以會有userid出現過兩次,所以放棄 但是想出的新方法也不慢,直接上代碼 d

原创 python 查看元素是否在列表中

一般情況下,直接用in list就可以 但是昨天在工作的時候,發現當list過大的時候特別耗時間 例子:將dataframe中id在黑名單中的id都設置爲0 df['UserID'] = df['UserID'].apply(lambda

原创 ValueError: Shape of passed values is (6, 3), indices imply (6, 6)

他需要6列6行,但是隻給了6列3行。 一般情況看看自己的創建dataframe是否有錯誤 pdd_annual_transaction_value = pd.DataFrame([[pdd_201701_201712[0], pdd_2

原创 python分組後對前百分之二十的數字聚合

這幾天實習的時候寫了一大堆pandas處理數據的任務,但是真正卡住人的其實很少,但是唯獨這個需求卡了我很久 具體的內容是:算出年齡最大的百分之二十的人的年齡佔總年齡的比例 當時數據量幾個g,所以你也不知道每個城市有多少人,所以情況會比例子

原创 AttributeError: type object 'array.array' has no attribute 'array' 問題解決

最近在學習《流暢的python》的這本書的時候遇到了這個問題 下面是源代碼: import pandas as pd from array import array from random import random numbers

原创 (pandas學習)對列求和

這幾天在學習的時候突然忘記怎麼對列求和了,然後百度的時候全是一樣的抄書的,服氣了,我只是要求個和 直接上代碼 df1['age'].sum() df1表示dataframe, age表示選擇的列

原创 (pandas學習)對dataframe用to_excel輸出表格的格式修改

這幾天再寫一個腳本,從數據庫中提取數據,轉成dataframe然後清洗,最後轉成excel,然後再調用函數將其發送給客戶,但是這一此可以對excel的表格有特殊的需求,這就難倒我了,只不過爆肝後還是解決了方法 首先是xlsxwriter類

原创 pandas將dataframe的小數修改成百分比

df1_1.applymap(lambda x :'%.2f%%'  %  (x*100))   1.原始代碼和顯示 2.使用applymap函數 df1 = df1.applymap(lambda x: '%.2f%%' % (x