<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
pandas 是基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函數和方法。你很快就會發現,它是使Python成為強大而高效的資料分析環境的重要因素之一。
1、pandas
pandas 是一個多功能且功能強大的資料科學庫。
2、讀取資料
pd.read_csv("data.csv")
3、讀取指定列
pd.read_csv("data.csv", usecols=["date", "price"])
4、讀取並解析日期
pd.read_csv("data.csv", parse_dates=["date"])
5、讀取時指定資料型別
在讀取時設定類別資料型別可以節省記憶體。
pd.read_csv("data.csv", dtype={"house_type": "category"})
6、讀取時設定索引
pd.read_csv("data.csv", index_col="date")
7、設定讀取的行數
pd.read_csv("data.csv", nrows=100)
8、讀取時跳過行數
pd.read_csv("data.csv", skiprows=[1, 5]) # skips line 1 and 5 pd.read_csv("data.csv", skiprows=100) # skips the first 100 lines pd.read_csv("data.csv", skiprows=lambda x: x > 0 and np.random.rand() > 0.1) # skip 90% of the rows
9、指定NA值
pd.read_csv("data.csv", na_values=["?"])
10、設定布林值
pd.read_csv("data.csv", true_values=["yes"], false_values=["no"])
11、一次讀取多個檔案後合併
import glob import os files = glob.glob("file_*.csv") result = pd.concat([pd.read_csv(f) for f in files], ignore_index=True)
12、複製資料
df = pd.read_clipboard()
13、從 PDF 檔案中讀取表格
from tabula import read_pdf # Read pdf into list of DataFrame df = read_pdf('test.pdf', pages='all')
14、快速視覺化資料集
import pandas_profiling df = pd.read_csv("data.csv") profile = df.profile_report(title="Pandas Profiling Report") profile.to_file(output_file="output.html")
15、按dtype過濾列
# 選擇 df.select_dtypes(include="number") df.select_dtypes(include=["category", "datetime"]) # 排除 df.select_dtypes(exclude="object")
16、推斷資料型別
df.infer_objects().dtypes
17、向下轉換數值型別
pd.to_numeric(df.numeric_col, downcast="integer") # smallest signed int dtype pd.to_numeric(df.numeric_col, downcast="float") # smallest float dtype
18、防止錯誤值並填充
# apply to whole data frame df = df.apply(pd.to_numeric, errors="coerce") # apply to specific columns pd.to_numeric(df.numeric_column, errors="coerce") # filling NA values with zero pd.to_numeric(df.numeric_column, errors="coerce").fillna(0)
19、按列資料型別轉換
df = df.astype( { "date": "datetime64[ns]", "price": "int", "is_weekend": "bool", "status": "category", } )
20、重新命名列
df = df.rename({"PRICE": "price", "Date (mm/dd/yyyy)": "date"}, axis=1)
21、新增字尾和字首
df.add_prefix("pre_") df.add_suffix("_suf")
22、從原列建立新列
# create new column of Fahrenheit values from Celcius df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)
23、在特定位置插入列
random_col = np.random.randint(10, size=len(df)) df.insert(3, 'random_col', random_col) # inserts at third column
24、三元表示式
df["logic"] = np.where(df["price"] > 5, "high", "low")
25、刪除列
df.drop('col1', axis=1, inplace=True) df = df.drop(['col1','col2'], axis=1) s = df.pop('col') del df['col'] df.drop(df.columns[0], inplace=True)
26、修改列名
df.columns = df.columns.str.lower() df.columns = df.columns.str.replace(' ', '_')
27、判斷包含
df['name'].str.contains("John") df['phone_num'].str.contains('...-...-....', regex=True) # regex df['email'].str.contains('gmail')
28、根據正則查詢
pattern = '([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})' df['email'].str.findall(pattern, flags=re.IGNORECASE)
29、檢查缺失值並列印缺失百分比
def missing_vals(df): """prints out columns with perc of missing values""" missing = [ (df.columns[idx], perc) for idx, perc in enumerate(df.isna().mean() * 100) if perc > 0 ] if len(missing) == 0: return "no missing values" # sort desc by perc missing.sort(key=lambda x: x[1], reverse=True) print(f"There are a total of {len(missing)} variables with missing valuesn") for tup in missing: print(str.ljust(f"{tup[0]:<20} => {round(tup[1], 3)}%", 1)) missing_vals(df)
30、處理缺失值
# drop df.dropna(axis=0) df.dropna(axis=1) # impute df.fillna(0) df.fillna(method="ffill") df.fillna(method='bfill') # replace df.replace( -999, np.nan) df.replace("?", np.nan) # interpolate ts.interpolate() # time series df.interpolate() # fill all consecutive values forward df.interpolate(limit=1) # fill one consecutive value forward df.interpolate(limit=1, limit_direction="backward") df.interpolate(limit_direction="both")
31、從今天/之前獲取 X 小時/天/周
# from today date.today() + datetime.timedelta(hours=30) date.today() + datetime.timedelta(days=30) date.today() + datetime.timedelta(weeks=30) # ago date.today() - datetime.timedelta(days=365)
32、過濾兩個日期
df[(df["Date"] > "2015-01-01") & (df["Date"] < "2017-01-01")]
33、按日/月/年過濾
df[(df["Date"] > "2015-01-01") & (df["Date"] < "2017-01-01")]
34、格式化資料格式
format_dict = { "Date": "{:%d/%m/%y}", "Open": "${:.2f}", "Close": "${:.2f}", "Volume": "{:,}", } df.style.format(format_dict)
35、設定資料顏色
( df.style.format(format_dict) .hide_index() .highlight_min(["Open"], color="red") .highlight_max(["Open"], color="green") .background_gradient(subset="Close", cmap="Greens") .bar('Volume', color='lightblue', align='zero') .set_caption('Tesla Stock Prices in 2017') )
36、獲取一列中最大最小項的id
df['col'].idxmin() df['col'].idxmax()
37、對資料列應用函數
df.applymap(lambda x: np.log(x))
38、隨機打亂資料
df.sample(frac=1, random_state=7).reset_index(drop=True)
39、時間序列的百分比變化
df['col_name'].pct_change()
40、分配等級
df['rank'] = df['column_to_rank'].rank()
41、檢查記憶體佔用
df.memory_usage().sum() / (1024**2) #converting to MB
42、將列的值分解為多行
df.explode("col_name").reset_index(drop=True)
43、將數量較小的類別轉換為“其他”
subclass = df.MSSubClass subclass.value_counts() top_five = subclass.value_counts().nlargest(5).index mssubclass_new = subclass.where(subclass.isin(top_five), other="Other") mssubclass_new.value_counts()
到此這篇關於python中pandas常用命令的文章就介紹到這了,更多相關python pandas常用命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45