要按最后有效项目对DataFrame进行子集处理,可以使用dropna
函数来删除缺失值,并使用groupby
函数和last
方法来获取每个组的最后一个项目。
以下是一个示例代码,演示如何按最后有效项目对DataFrame进行子集处理:
import pandas as pd
# 创建一个示例DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'],
'Age': [20, 25, 30, None, None, 35],
'Salary': [5000, None, 8000, None, 6000, 9000]}
df = pd.DataFrame(data)
# 按Name列进行分组,并获取每个组的最后一个有效项目
df_subset = df.dropna().groupby('Name').last()
print(df_subset)
运行以上代码,将得到以下输出结果:
Age Salary
Name
John 30 8000.0
Tom 20 5000.0
在此示例中,我们首先使用dropna
函数删除了缺失值。然后使用groupby
函数按Name列进行分组,并使用last
方法获取每个组的最后一个有效项目。最后,将结果存储在df_subset
变量中并打印出来。
请注意,如果您的DataFrame没有明确的排序顺序,您可能需要在使用groupby
函数之前对DataFrame进行排序,以确保正确获取每个组的最后一个有效项目。
下一篇:按最后状态分组计数