日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

pandas 判断是否等于nan_Python之pandas笔记

發(fā)布時間:2024/9/27 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pandas 判断是否等于nan_Python之pandas笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、創(chuàng)建

1.創(chuàng)建 Series (一維,帶標(biāo)簽的數(shù)組)

t = pd.Series(np.arange(10), index= list(string.ascii_uppercase[:10]))

2.創(chuàng)建 DataFrame (二維,Series的容器 )

t = pd.DataFrame(np.arange(6).reshape((2,3)), index=list('ab'),columns=list('csr') )

3.DataFrame的基礎(chǔ)屬性

#行列數(shù) print(tt2.shape) #列數(shù)據(jù)類型 print(tt2.dtypes) #數(shù)據(jù)維度 print(tt2.ndim) #行索引 print(tt2.index) #列索引 print(tt2.columns) #對象值(二維數(shù)組) print(tt2.values)

4.DataFrame整體情況的查詢

#顯示頭部的幾行默認(rèn)五行 print(tt2.head(2)) #顯示末尾幾行 默認(rèn)五 print(tt2.tail()) 顯示相關(guān)的信息 print(http://tt2.info()) 快速的縱隔統(tǒng)計記過: (計數(shù),均值,標(biāo)準(zhǔn)差,最大值,四分位數(shù), 最小值) print(tt2.describe())

5.DataFrame 對數(shù)據(jù)排序 (升序或者降序)

a) 升序 d1 = dogname.sort_values(by="Count_AnimalName") b) 降序 d2 = dogname.sort_values(by="Count_AnimalName", ascending=False)

6.取行取列操作

數(shù)字取行, 字符串取列 d2[:20]['Row_Labels'] df.loc方法:(通過標(biāo)簽索引行數(shù)據(jù)) print(csv.loc[['a','b'],['w','r']]) 遍歷的形式,包括后面的r列 print(csv.loc[['a','b'],'w':'r']) df.iloc方法 (通過位置獲取行數(shù)據(jù)) print(csv.iloc[[0,2],[2]]) 遍歷的形式,不包括后面的3行 print(csv.iloc[0:3,[2,3]])

7.pandas布爾值類型條件

多個條件可以 通過 & 鏈接 dogname[(dogname['Count_AnimalName']>50) & (dogname['Row_Labels'].str.len()>4)]

8.對nan的一些操作

a) 判斷是否為 nan : pd.isnull(t) 或者 pd.notnull(t) b) 刪除nan所在行列: t.dropna(axis=0, how='any', inplace=False) how:any/all(全為nan刪除) inplace是否直接替換 c) 填充nan: t.fillna(t.mean()) d) 將0改為nan:t[t==0] = np.nan

9.對于過長的DataFrame與numpy使用print打印時,全部顯示(不會出現(xiàn)省略號)

a) 對于DataFrame: 1)顯示所有的列: pd.set_option('display.max_columns', None) 2) 顯示所有的行: pd.set_option('display.max_rows', None) b)對于numpy: numpy.set_printoptions(threshold = np.inf) #若想不以科學(xué)計數(shù)顯示: numpy.set_printoptions(suppress = True)

10.數(shù)組合并之join / merge

a) join:默認(rèn)情況下把行索引相同的數(shù)據(jù)合并到一起: df1.join(df2) 注意:根據(jù)前面的行列進(jìn)行合并,假如兩個df制定了列,則不可有重復(fù)列名 b) merge:根據(jù)列索引進(jìn)行合并 1)默認(rèn)為內(nèi)連接(交集): df1.merge(df2, on='c') (假如都合適,22會出現(xiàn)四行數(shù)據(jù)) 2)merge outer外連接(并集):df1.merge(df2, on='c', how='outer')把除了交際以外的數(shù)據(jù),顯示c有的那一個df的數(shù)據(jù),沒有的補充nan 3)merge left 左連接(根據(jù)左邊的df) 4)merge right右連接(根據(jù)右邊的df

11.分組與聚合

1) grouped = df.groupby(by='列索引') #根據(jù)此列數(shù)據(jù)進(jìn)行分組 2) grouped 是一個DataFrameGroupBy對象,是可迭代的 3) grouped中的每一個元素是一個元組 4) 元組里面是 (索引(分組的值),分組后的DataFrame)

12.DataFrameGroupBy 對象有很多經(jīng)過優(yōu)化的方法

13.簡單的索引操作

1) 獲取index: df.index 2) 指定index: df.index = ['x', 'y'] 3) 重新設(shè)置index: df.reindex(list("abc")) #這個操作類似查詢,在df中取出有"abc"列的數(shù)據(jù),沒有的nan填充 4) 指定索引(index)為 某一列: df.set_index("列名",drop=Fasle) #drop指定Fasle,指定列成為索引,此列也為數(shù)據(jù) 5) 返回index的唯一值(去重): df.set_index('列名').index.unique()

14.從復(fù)合索引中取值

Series) 1) s1['a']['b'] 2) s1['a', 'b'] DataFrame) df.loc['a'].loc['b']

15.從內(nèi)層索引開始取值

df.swaplevel()

16.pandas中的時間序列

1)生成時間范圍 開始結(jié)束時間) pd.date_range(start="2001-01-01", end="2002-01-01", freq="10D") 開始時間和生成個數(shù))pd.date_range(start="2001-01-01", periods = 10, freq= "WOM-3FRI") 2)時間字符串轉(zhuǎn)換成 時間序列 df["timeStamp"] = pd.to_datetime(df["timeStamp"], format="") format對panda無法格式化的時間字符串進(jìn)行處理,詳情搜索

17.pandas重采樣重采樣:

指的是將時間序列從一個頻率轉(zhuǎn)換成另一個頻率進(jìn)行處理的過程。將高頻率轉(zhuǎn)換成低頻率數(shù)據(jù)為降采樣,低頻率轉(zhuǎn)換成高頻率為升采樣pandas提供一個 resample 的方法來幫助我們實現(xiàn)頻率轉(zhuǎn)化例如 以月份進(jìn)行統(tǒng)計t.resample("M").mean()

18.PeriodIndex

DatetimeIndex 可以理解為時間戳 那么 PeriodIndex可以理解為時間段 例子: periods = pd.PeriodIndex( year=data["year"], month=data["month"],day=data["day"],hour=data["hour"], freq="H" ) 如何給這個時間段降采樣? data = df.set_index(periods).resample("10D").mean()

19.時間類型轉(zhuǎn) 字符串類型

time.strftime('%y%m%d')

總結(jié)

以上是生活随笔為你收集整理的pandas 判断是否等于nan_Python之pandas笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。