Python每日學習知識點

2019.12.9

1、pandas時間格式轉換

pd.to_datetime(“數據框.日期”,format = “%Y%m%d”)

2、計算時先數據框在后續(xù)跟其他計算

eg:
df.groupby("month").order_amount.sum().plot(title = "每月消費總金額")

3、作圖不顯示中文、負數

處理方式:

import matplotlib.pyplot as plt
import matplotlib as mpl

plt/mpl.rcParams['font.sans-serif']=['Simhei'] #解決中文顯示問題,目前只知道黑體可行
plt/mpl.rcParams['axes.unicode_minus']=False #解決負數坐標顯示問題
   
4、去重函數:drop_duplicates

DataFrame.drop_duplicates(sub = None,kee,inplace)
eg:
df. drop_duplicates(sub = [“b”],kee=”first”,inplace=False)
參數:
subset : column label or sequence of labels, optional
用來指定特定的列,默認所有列
keep : {‘first’, ‘last’, False}, default ‘first’
刪除重復項并保留第一次出現的項
inplace : boolean, default False
是直接在原來數據上修改還是保留一個副本

5、散點圖要給到x、y軸
eg:
ax = df.plot.scatter(x='a', y='b', color='b', label='Group 1')
df.plot.scatter(x='c', y='d', color='g', label='Group 2')
6、query-字符串表達式查詢

df.query(expr,inplace = False,** kwargs )# 使用布爾表達式查詢幀的列

參數:
expr:str要評估的查詢字符串。你可以在環(huán)境中引用變量,在它們前面添加一個'@'字符 。@a + b
inplace=False:是否修改數據或返回副本
kwargs:dict關鍵字參數
返回:DataFrame

注意:
1、query后面只支持string形式的值
2、可以用query來過濾數字


12.12.10

1、重命名函數rename

df1.rename (columns={'c':'D','b':'C'} , inplace=True)
eg:
rfm.rename(columns = {"order_products":"F","order_amount":"M"},inplace = True)

2、去除時間單位np.timedelta64(1,"D")

Timestamp():表示時間軸上的一個時刻
舉例:調用Timestamp.now()獲取當前時間
Period():表示一個標準的時間段。例如某年、某月、某日、某小時等。時間的長短由freq決定
舉例獲得包含當前時間的時間段:now_day=pd.Period.now(freq="D")
Timedelta():兩個時間的間隔

3、count()、values_counts()、size()函數

value_counts():是一種查看表格某列中有多少個不同值的快捷方法,并計算每個不同值有在該列中有多少重復值。
count() :方法用于統計字符串里某個字符出現的次數。可選參數為在字符串搜索的開始與結束位置。
size():函數是返回分組大小的Series

4、錯位函數shift

df.shift(periods=1, freq=None, axis=0)

period:表示移動的幅度,可以是正數,也可以是負數,默認值是1,1就表示移動一次,注意這里移動的都是數據,而索引是不移動的,移動之后沒有對應值的,就賦值為NaN。
freq: DateOffset, timedelta, or time rule string,可選參數,默認值為None,只適用于時間序列,如果這個參數存在,那么會按照參數值移動時間索引,而數據值沒有發(fā)生變化。
axis: 軸向
注意:
1/當period為正時,默認是axis = 0軸的設定,向下移動
2/當axis=1,沿水平方向進行移動,正數向右移,負數向左移
3/當period為負時,默認是axis = 0軸的設定,向上移動

5、applymap函數

apply:作用在dataframe的一行或一列上
applymap: 作用在dataframe的每一個元素上
要對數據框(DataFrame)的每一個數據進行操作時用applymap()

6、匿名函數lambda使用

f = lambda x,y,z:x+y+z
冒號:之前的x,y,z表示它們是這個函數的參數。
匿名函數不需要 return 來返回值,表達式本身結果就是返回值。
匿名函數調用:直接賦值給一個變量,然后再像一般函數調用、

python的匿名函數lambda解釋及用法

7、str.extract 正則提取數據

str.extract():可用正則從字符數據中抽取匹配的數據,只返回第一個匹配的數據。 \d+.?\d*/\d+
\d+ :匹配多個數字字符串

注意,正則表達式中必須有分組,只是返回分組中的數據,如果給分組取了名稱,則該名稱就是返回結果中的字段名。
Series.str.extract(pat, flags=0, expand=None)
參數:
pat : 字符串或正則表達式
flags : 整型,
expand : 布爾型,是否返回DataFrame (如果為True,則返回DataFrame,每個捕獲組一列。如果為False,如果有一個捕獲組,則返回系列/索引;如果有多個捕獲組,則返回DataFrame)
Returns: 數據框dataframe/索引index
正則表達式語言 - 快速參考

df['floor_level']=df.floorlevel.str.extract('(\D+)/')
df['floor']=df.floorlevel.str.extract('/(.*)層')
df.drop('floorlevel',axis=1,inplace=True)
df['floor']=df['floor'].astype(float)

df['construction_time']=df.construction_time.str.extract('(\d+)年建')
df['construction_time']=pd.to_datetime(df.construction_time,format='%Y').values.astype('datetime64[Y]')
8、分割

df1 = pd.concat([df,df['floor'].str.split('/',expand = True)],axis = 1)
df1.head()

9、matplotlib動態(tài)圖subplots()和subplot()不同及參數

當sharex = True, sharey = True時,生成的四個ax的所有坐標軸用有相同的屬性
matplotlib動態(tài)圖subplots()和subplot()不同及參數

10、數據導出

df.to_csv("文件名")

11、isin()函數

isin()接受一個列表,判斷該列中元素是否在列表中

df.isin({'某列':[條件],'某列':[條件]})

反函數就是在前面加上 ~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容