欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中pandas常用命令詳解

 更新時間:2022年07月25日 11:48:35   作者:坐望云起  
pandas 是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,這篇文章主要介紹了python中pandas常用命令,需要的朋友可以參考下

pandas 是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas 納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會發(fā)現(xiàn),它是使Python成為強大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一。

1、pandas

pandas 是一個多功能且功能強大的數(shù)據(jù)科學(xué)庫。 

2、讀取數(shù)據(jù)

pd.read_csv("data.csv")

3、讀取指定列

pd.read_csv("data.csv", usecols=["date", "price"])

4、讀取并解析日期

pd.read_csv("data.csv", parse_dates=["date"])

5、讀取時指定數(shù)據(jù)類型

        在讀取時設(shè)置類別數(shù)據(jù)類型可以節(jié)省內(nèi)存。

pd.read_csv("data.csv", dtype={"house_type": "category"})

6、讀取時設(shè)置索引

pd.read_csv("data.csv", index_col="date")

7、設(shè)置讀取的行數(shù)

pd.read_csv("data.csv", nrows=100)

8、讀取時跳過行數(shù)

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、設(shè)置布爾值

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、復(fù)制數(shù)據(jù)

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、快速可視化數(shù)據(jù)集

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、推斷數(shù)據(jù)類型

df.infer_objects().dtypes

17、向下轉(zhuǎn)換數(shù)值類型

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、按列數(shù)據(jù)類型轉(zhuǎn)換

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、從原列創(chuàng)建新列

# 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、根據(jù)正則查找

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 values\n")
 
    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、格式化數(shù)據(jù)格式

format_dict = {
    "Date": "{:%d/%m/%y}",
    "Open": "${:.2f}",
    "Close": "${:.2f}",
    "Volume": "{:,}",
}
 
df.style.format(format_dict)

35、設(shè)置數(shù)據(jù)顏色

(
    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、對數(shù)據(jù)列應(yīng)用函數(shù)

df.applymap(lambda x: np.log(x))

38、隨機打亂數(shù)據(jù)

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、檢查內(nèi)存占用

df.memory_usage().sum() / (1024**2) #converting to MB

42、將列的值分解為多行

df.explode("col_name").reset_index(drop=True)

43、將數(shù)量較小的類別轉(zhuǎn)換為“其他”

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()

到此這篇關(guān)于python中pandas常用命令的文章就介紹到這了,更多相關(guān)python pandas常用命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹

    終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹

    這篇文章主要介紹了終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 詳解DBSCAN算法原理及其Python實現(xiàn)

    詳解DBSCAN算法原理及其Python實現(xiàn)

    DBSCAN,即Density-Based Spatial Clustering of Applications with Noise,基于密度的噪聲應(yīng)用空間聚類,本文將詳細介紹DBSCAN算法的原理及其Python實現(xiàn),需要的可以參考下
    2023-12-12
  • Python如何解除一個裝飾器

    Python如何解除一個裝飾器

    這篇文章主要介紹了Python如何解除一個裝飾器,幫助大家更好的理解和學(xué)習(xí)Python裝飾器,感興趣的朋友可以了解下
    2020-08-08
  • Python實現(xiàn)滑雪小游戲

    Python實現(xiàn)滑雪小游戲

    這篇文章主要為大家詳細介紹了Python實現(xiàn)滑雪小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python集成開發(fā)環(huán)境Pycharm的使用及技巧

    Python集成開發(fā)環(huán)境Pycharm的使用及技巧

    本文詳細講解了Python集成開發(fā)環(huán)境Pycharm的使用及技巧,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python爬蟲之爬取最新更新的小說網(wǎng)站

    Python爬蟲之爬取最新更新的小說網(wǎng)站

    這篇文章主要介紹了Python爬蟲之爬取最新更新的小說網(wǎng)站,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python爬蟲的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python連接Hadoop數(shù)據(jù)中遇到的各種坑(匯總)

    Python連接Hadoop數(shù)據(jù)中遇到的各種坑(匯總)

    這篇文章主要介紹了Python連接Hadoop數(shù)據(jù)中遇到的各種坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python3 sorted 如何實現(xiàn)自定義排序標(biāo)準(zhǔn)

    python3 sorted 如何實現(xiàn)自定義排序標(biāo)準(zhǔn)

    這篇文章主要介紹了python3 sorted 如何實現(xiàn)自定義排序標(biāo)準(zhǔn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python基礎(chǔ)教程項目四之新聞聚合

    python基礎(chǔ)教程項目四之新聞聚合

    這篇文章主要為大家詳細介紹了python基礎(chǔ)教程項目四之新聞聚合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Pandas GroupBy對象 索引與迭代方法

    Pandas GroupBy對象 索引與迭代方法

    今天小編就為大家分享一篇Pandas GroupBy對象 索引與迭代方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論