簡體   English   中英

Pandas dataframe 獲取列的唯一值

[英]Pandas dataframe get unique value of a column

我正在嘗試為每個站點獲取唯一的可用值。 原來的 pandas dataframe 有三列:

地點 可用的 容量
一種 7 20
一種 7 20
一種 8個 20
15 35
15 35
C 12 25
C 12 25
C 11 25

我想獲得每個站點的唯一可用信息。 所需的表格如下所示:

地點 唯一可用
一種 7
8個
15
C 12
11

您可以使用GroupBy.unique()獲取每個站點可用的唯一列表

>>> df.groupby('Site')['Available'].unique()
Site
A      [7, 8]
B        [15]
C    [12, 11]
Name: Available, dtype: object

然后使用explode()您可以擴展這些列表,並使用reset_index()將索引返回到列:

>>> df.groupby('Site')['Available'].unique().explode().reset_index()
  Site Available
0    A         7
1    A         8
2    B        15
3    C        12
4    C        11

否則只需獲取兩列並刪除重復項:

>>> df[['Site', 'Available']].drop_duplicates()
  Site  Available
0    A          7
2    A          8
3    B         15
5    C         12
7    C         11

方法: GroupBy.apply() + Series.drop_duplicates()

(df.groupby('Site')['Available']
   .apply(lambda s: s.drop_duplicates())
   .reset_index(level=1, drop=True)
   .reset_index(name='Unique Available')
)

結果:

  Site  Unique Available
0    A                 7
1    A                 8
2    B                15
3    C                12
4    C                11

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM