python常用pandas函数nlargest / nsmallest及其手动实现
    		       		warning:
    		            这篇文章距离上次修改已过442天,其中的内容可能已经有所变动。
    		        
        		                
                
import pandas as pd
 
# 创建示例DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1],
    'C': ['a', 'b', 'c', 'd', 'e']
})
 
# 使用nlargest和nsmallest函数
# 获取每列中最大的两个值
top2_values_A = df['A'].nlargest(2)
top2_values_B = df['B'].nlargest(2)
 
# 获取每列中最小的两个值
bottom2_values_A = df['A'].nsmallest(2)
bottom2_values_B = df['B'].nsmallest(2)
 
# 手动实现nlargest和nsmallest函数
def manual_nlargest(series, n):
    return series.sort_values(ascending=False).head(n)
 
def manual_nsmallest(series, n):
    return series.sort_values(ascending=True).head(n)
 
# 手动实现的结果应该与使用pandas内置函数的结果一致
assert manual_nlargest(df['A'], 2).equals(top2_values_A)
assert manual_nsmallest(df['A'], 2).equals(bottom2_values_A)
 
print("手动实现的最大值获取成功!")这段代码首先创建了一个简单的DataFrame,然后使用了pandas的nlargest和nsmallest函数来获取每列中最大和最小的几个值。接着,我们手动实现了这两个函数,并通过断言验证了手动实现的结果与使用内置函数的结果是否一致。这样做可以帮助理解这些函数的工作原理,并且在某些情况下可以作为替代方案,用来提高代码的可读性或者是在无法使用pandas库的环境中。
评论已关闭