獲取 Pandas 列中的唯一值並進行排序
-
用
unique
方法獲取 Pandas DataFrame 列中的唯一值 -
用
drop_duplicates
方法獲取 Pandas DataFrame 列中的唯一值 - 在 Pandas DataFrame 中對列進行排序
本文將介紹如何獲取 Pandas DataFrame 列中的唯一值。
例如,假設我們有一個由個人及其職業組成的 DataFrame,我們想知道職業的總數。在這種情況下,我們不能簡單地使用總行數來確定獨特的職業總數,因為許多人可能有相同的工作。對於這種情況,我們可以使用 Pandas 庫提供的 unique()
和 drop_duplicates()
函式。
知道如何對 DataFrame 進行排序也是很重要的,因為它可以幫助視覺化和理解資料。sorted()
和 sort_values()
函式可以幫助實現這一點。
我們將在本教程中對以下 DataFrame 進行排序和刪除。
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})
print(df)
輸出:
A B
0 7 1
1 1 2
2 5 8
3 4 5
4 2 3
5 1 4
6 4 2
7 4 6
8 8 8
用 unique
方法獲取 Pandas DataFrame 列中的唯一值
Pandas Series
的 unique()
方法在我們處理 DataFrame 的單列時使用,並返回一列的所有唯一元素。使用 unique()
函式的最終輸出是一個陣列。
例:
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})
print(df["A"].unique())
print(type(df["A"].unique()))
輸出:
[7 1 5 4 2 8]
numpy.ndarray
用 drop_duplicates
方法獲取 Pandas DataFrame 列中的唯一值
drop_duplicates()
可應用於 DataFrame 或其子集,並保留 DataFrame 物件的型別。當處理巨大的資料集以刪除重複值時,它也被認為是一個更快的選擇,
例:
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})
print(df.drop_duplicates(subset="A"))
print(type(df.drop_duplicates(subset="A")))
輸出:
A B
0 7 1
1 1 2
2 5 8
3 4 5
4 2 3
8 8 8
pandas.core.frame.DataFrame
在 Pandas DataFrame 中對列進行排序
我們可以使用 sorted()
方法對一個列進行排序,但它將最終結果轉換為一個列表型別的物件。我們也可以通過將 reversed
引數設定為 True
來對列值進行降序排序。
下面的例子按照升序對列進行排序,並刪除重複的值。
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})
df_new = df.drop_duplicates(subset="A")
print(sorted(df_new["A"]))
print(type(sorted(df_new["A"])))
輸出:
[1, 2, 4, 5, 7, 8]
list
sort_values()
是另一個對 DataFrame 進行排序的靈活選項。在這裡,我們可以使用 by
引數指定要排序的列,使用 ascending
引數指定順序是升序還是降序。它保留了物件型別為 Pandas DataFrame。
下面的例子是將列按降序排序,並刪除重複的值。
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})
df_new = df.drop_duplicates(subset="A")
print(df_new.sort_values(by="A", ascending=False))
type(df_new.sort_values(by="A"))
輸出:
A B
8 8 8
0 7 1
2 5 8
3 4 5
4 2 3
1 1 2
pandas.core.frame.DataFrame
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn