提取每组数据帧的第一条记录pandas

Extract first record of each group dataframe pandas

有一个超过 200,000 行的 excel 文件,我只想从每个组中提取第一行(这些组在第三列中。我已经阅读了数据集并将值按两个排序列。现在我只需要用每个组的第一行创建一个新的数据框

这是 excel 文件的示例,这是我到目前为止的尝试

import pandas as pd

df = pd.read_excel('Example.xlsx', sheet_name='Sheet1')
df['Date']= pd.to_datetime(df['Date'])
df = df.sort_values(['F. No.', 'Date'], ascending=[True, False])
print(df.head())

所以我需要提取从F. No.Emp.的四列(每组只取最近的记录)

这可能有帮助:

import pandas as pd

df = pd.read_excel('Example.xlsx', sheet_name='Sheet1')
df['Date']= pd.to_datetime(df['Date'])
df = df.sort_values(['F. No.', 'Date'], ascending=[True, False])
df_first = df.groupby(['F. No.'], as_index=False).head(1)

要确保 groupby 列不会成为索引,请传递 as_index=False kwarg。请注意,.head(1) 有效,因为数据在上一行中排序。