簡體   English   中英

Pandas - 查找列中第一次更改值的時間?

[英]Pandas- Finding the first time a value changes in a column?

我有一個像這樣的 dataframe:

account    date
  A        0812
  A        0812
  A        0812
  A        0823
  A        0823
  B        0723
  B        0730
  B        0730
  B        0801
  B        0801
  B        0801

我想在每個帳戶的值第一次更改時獲取“日期”值。 所以我正在尋找的 output 是這樣的:

account   date
  A       0823
  B       0730

我試圖通過 function 做一個密集等級組並按等級等於 1 過濾。

df.groupby('account')['date'].rank(method='dense')但 output 為相同的值保持相同的排名,這不起作用。 “第一”和“最后”的排名似乎也不起作用。

我相信您首先需要DataFrame.drop_duplicates ,然后通過GroupBy.cumcount獲得每個組的第二個值:

df1 = df.drop_duplicates(['account','date'])

df1 = df1[df1.groupby('account').cumcount().eq(1)]
print (df1)
  account  date
3       A   823
6       B   730

或通過GroupBy.nth

df1 = df.drop_duplicates(['account','date'])

df1 = df1.groupby('account', as_index=False).nth(1)
print (df1)
  account  date
3       A   823
6       B   730

暫無
暫無

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

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