提取每组数据帧的第一条记录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)
有效,因为数据在上一行中排序。
有一个超过 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)
有效,因为数据在上一行中排序。