![](/img/trans.png)
[英]Get the last rows for a unique value in a column from a dataframe - Pandas
[英]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.