Pandas 面試題解析

一、 Pandas 面試題

Pandas 是一個用於數據操作和分析的 Python 庫。在數據處理和數據分析領域中,它是非常流行的工具之一,被廣泛用於處理結構化數據。

在 Pandas 面試中,經常涉及以下幾個方面的問題:

1. Series 和 Dataframe 有什麼區別?

Pandas 中的 Series 可以看作是一個帶有標籤的一維數組,可以保存不同的數據類型,每個元素都有一個唯一的標籤。而 Dataframe 是二維數組,可以看成是多個 Series 拼接組成的表格,有行索引和列索引,可以亞索每一行和每一列。

 # 簡單創建 Series 和 Dataframe
 import pandas as pd

 # 創建 Series
 s = pd.Series([1,2,3,4])
 print(s)

 # 創建 Dataframe
 df = pd.DataFrame({'a': [1,2,3,4], 'b': [5,6,7,8]})
 print(df)

2. 如何刪除 Dataframe 中重複的行?

如果 Pandas 中的 Dataframe 包含重複的行,可以使用 drop_duplicates 方法刪除,方法會返回一個新的 Dataframe。在調用時,可以指定列名,只有指定的列全都相同的行才會被刪除。

 # 刪除 Dataframe 中的重複行
 import pandas as pd

 df = pd.DataFrame({'A': [1,1,2,2,3,4], 'B': ['a', 'b', 'a', 'a', 'c', 'd']})
 df = df.drop_duplicates(['A'])
 print(df)

3. 如何對 Dataframe 進行合併操作?

在 Pandas 中,可以使用 concat 方法或 merge 方法對 Dataframe 進行合併操作。其中,concat 方法主要用於簡單的合併操作。如果需要更加複雜的合併操作,則可以選擇 merge 方法。

 # 使用 concat 合併 Dataframe
 import pandas as pd

 df1 = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})
 df2 = pd.DataFrame({'A': [4,5,6], 'B': [7,8,9]})
 df3 = pd.concat([df1, df2])
 print(df3)

 # 使用 merge 合併 Dataframe
 df4 = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'key': ['a', 'b', 'c']})
 df5 = pd.DataFrame({'B': [7,8,9], 'C': [10,11,12], 'key': ['a', 'b', 'd']})
 df6 = pd.merge(df4, df5, on='key')
 print(df6)

二、 Pandas常見面試題

1. 如何刪除一列或多列?

可以使用 drop 函數刪除一列,需要指定列的名稱以及 axis=1 參數。如果需要刪除多列,則可以將列名放在一個 list 中傳遞給 drop 函數。

 # 刪除一列或多列
 import pandas as pd

 df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
 df = df.drop(['B', 'C'], axis=1)
 print(df)

2. 如何選擇 Dataframe 中的某些列?

可以使用 loc 或 iloc 函數選擇某些列。如果只需要選擇一列,則可以使用如下代碼:

 # 選擇 Dataframe 中的某些列
 import pandas as pd

 df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
 col = df['A']
 print(col)

如果需要選擇多列,則可以使用 loc 或 iloc 函數。其中,loc 函數是基於名稱進行選擇,iloc 函數是基於索引進行選擇。

 # 使用 loc 函數選擇多列
 cols = df.loc[:, ['A', 'C']]
 print(cols)

 # 使用 iloc 函數選擇多列
 cols = df.iloc[:, [0, 2]]
 print(cols)

3. 如何設置 Dataframe 中某些列的數值類型?

可以使用 astype 函數設置某些列的數值類型,函數會返回新的 Dataframe。可以將每個需要轉換類型的列都單獨轉換,也可以使用一個字典將需要轉換類型的列名稱和對應的數值類型一起傳遞給 astype 函數。

 # 設置 Dataframe 中某些列的數值類型
 import pandas as pd

 df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['4.1', '5.2', '6.3']})
 df['A'] = df['A'].astype(int)
 df['B'] = df['B'].astype(float)
 print(df)

 # 傳遞字典轉換某些列的數值類型
 dtypes = {'A': int, 'B': float}
 df = df.astype(dtypes)
 print(df)

三、 Pandas多層標題選取

1. 如何選取多層標題中的某個子標題?

可以使用 loc 函數選取多層標題中的某個子標題,需要指定每個層級的名稱,可以使用 tuple 或列表進行指定,例如:

 # 選擇多層標題中的子標題
 import pandas as pd

 data = {('a', 'b'): [1,2,3], ('a', 'c'): [4,5,6]}
 df = pd.DataFrame(data)
 sub_df = df.loc[:, ('a', 'b')]
 print(sub_df)

2. 如何選取多層標題中的所有子標題?

可以使用 xs 函數選取多層標題中的所有子標題,需要指定每個層級的名稱。如果有多個層級,可以使用 level 參數指定。

 # 選擇多層標題中的所有子標題
 import pandas as pd

 data = {('a', 'b'): [1,2,3], ('a', 'c'): [4,5,6]}
 df = pd.DataFrame(data)
 sub_df = df.xs('b', level=1, axis=1)
 print(sub_df)

3. 如何選取包含某個標題的所有子標題?

可以使用 filter 函數選取包含某個標題的所有子標題,需要指定要篩選的標題的名稱。例如:

 # 選擇包含某個標題的所有子標題
 import pandas as pd

 data = {('a', 'b'): [1,2,3], ('a', 'c'): [4,5,6], ('b', 'd'): [7,8,9]}
 df = pd.DataFrame(data)
 sub_df = df.filter(like='a', axis=1)
 print(sub_df)

四、 總結

在面試中,Pandas 常常是重要的考點。本篇文章介紹了Pandas的常見面試題,包括 Series 和 Dataframe 的區別、刪除重複行、合併 Dataframe、刪除列、選擇列、數據類型的設置、多層標題選取等。希望對大家在 Pandas 面試中有所幫助。

原創文章,作者:SVSB,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/148706.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SVSB的頭像SVSB
上一篇 2024-11-03 15:17
下一篇 2024-11-03 15:17

相關推薦

  • Pandas下載whl指南

    本篇文章將從幾個方面為大家詳細解答如何下載Pandas的whl文件。 一、Pandas簡介 Pandas是一個基於Python的軟件庫,主要用於數據分析、清洗和處理。在數據處理方面…

    編程 2025-04-28
  • 源碼審計面試題用法介紹

    在進行源碼審計面試時,可能會遇到各種類型的問題,本文將以實例為基礎,從多個方面對源碼審計面試題進行詳細闡述。 一、SQL注入 SQL注入是常見的一種攻擊方式,攻擊者通過在輸入的參數…

    編程 2025-04-27
  • 如何在Python中安裝和使用Pandas

    本文將介紹如何安裝和使用Python的Pandas庫 一、Pandas庫的介紹 Pandas是Python的一個數據分析庫,提供了許多實用的數據結構和數據分析工具,可以幫助用戶輕鬆…

    編程 2025-04-27
  • Mybatisplus面試題詳解

    Mybatisplus是在Mybatis的基礎上進行的封裝,它為我們簡化了開發操作,提供了自動生成常用SQL,自動分頁,及其他一些常用操作的功能,大大提高了開發的效率。在本篇文章中…

    編程 2025-04-25
  • uniapp面試題解析

    一、uniapp簡介 uniapp是一種基於vue.js框架的開源跨平台開發框架,可以讓開發者使用vue的語法在多個平台上進行一次編譯即可生成iOS、Android、Web和小程序…

    編程 2025-04-25
  • 深入解析pandas的drop_duplicates()函數

    在數據處理和清洗過程中,一個經常出現的問題是如何移除重複的數據項。pandas提供了一種方便易用的方式來完成這項任務——drop_duplicates()函數。本文將從多個方面深入…

    編程 2025-04-24
  • MySQL常見面試題

    一、基礎知識 1、MySQL的優點和缺點 MySQL是一個開源的關係型數據庫管理系統,擁有以下優點: (1)開源免費,可以節省成本; (2)支持多種操作系統; (3)易於使用和管理…

    編程 2025-04-24
  • 詳解pandas fillna 指定列

    一、fillna的基礎用法 fillna是pandas中一個常用的函數,它用於填充數據框或序列中的空值。我們先來看一個簡單的案例: import pandas as pd impo…

    編程 2025-04-24
  • Pandas apply函數詳解

    Pandas是Python的一個開源數據分析庫,專門用於數據操作和分析。其中apply()函數是Pandas中常用的數據操作函數之一,本文將從多個方面對這個函數進行詳細的闡述。 一…

    編程 2025-04-24
  • Pandas分組統計

    Pandas是一個強大的數據分析工具,可以用來處理大量的數據,包括分組,匯總和統計等。當面對大量的數據時,經常需要按照特定的標準對數據進行分組,然後對每個組進行統計分析,這時候就需…

    編程 2025-04-23

發表回復

登錄後才能評論