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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

一、創建

1.創建 Series (一維,帶標簽的數組)

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

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

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

3.DataFrame的基礎屬性

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

4.DataFrame整體情況的查詢

#顯示頭部的幾行默認五行 print(tt2.head(2)) #顯示末尾幾行 默認五 print(tt2.tail()) 顯示相關的信息 print(http://tt2.info()) 快速的縱隔統計記過: (計數,均值,標準差,最大值,四分位數, 最小值) print(tt2.describe())

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

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

6.取行取列操作

數字取行, 字符串取列 d2[:20]['Row_Labels'] df.loc方法:(通過標簽索引行數據) print(csv.loc[['a','b'],['w','r']]) 遍歷的形式,包括后面的r列 print(csv.loc[['a','b'],'w':'r']) df.iloc方法 (通過位置獲取行數據) 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打印時,全部顯示(不會出現省略號)

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) #若想不以科學計數顯示: numpy.set_printoptions(suppress = True)

10.數組合并之join / merge

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

11.分組與聚合

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

12.DataFrameGroupBy 對象有很多經過優化的方法

13.簡單的索引操作

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

14.從復合索引中取值

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

15.從內層索引開始取值

df.swaplevel()

16.pandas中的時間序列

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

17.pandas重采樣重采樣:

指的是將時間序列從一個頻率轉換成另一個頻率進行處理的過程。將高頻率轉換成低頻率數據為降采樣,低頻率轉換成高頻率為升采樣pandas提供一個 resample 的方法來幫助我們實現頻率轉化例如 以月份進行統計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.時間類型轉 字符串類型

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。