有没有一种方法可以根据某列中的项目数过滤数据帧?

2024-05-29 07:50:16 发布

您现在位置:Python中文网/ 问答频道 /正文

刚开始编程,希望能在熊猫方面得到一些帮助。我从一个研究棒球数据(特别是球场类型)的项目开始。如果音高类型低于某个阈值,是否有一种方法可以用来排除它们

例如,我能够基于count运行一个pivot,它为我提供了以下数据:

pitch_type count        
CH  79939    
CU  64166   
EP  49   
FC  46339   
FF  261485  
FO  36  
FS  10538   
FT  61044   
KC  15324   
KN  200 
SI  55361   
SL  127680  

基于上述数字,我想从分析中排除某些音高类型,因为计数不超过某个阈值(即1500)

我正在使用:

pitches_data[pitches_data["pitch_type"]<1500]

但得到以下错误消息:

TypeError: '<' not supported between instances of 'str' and 'int'

无论如何,这是否可以轻松完成,而不必手动删除每个节距类型

谢谢


Tags: 数据项目方法类型datatype编程count
3条回答

如果我正确理解了你的问题,你可以这样做: 获取每种俯仰类型的计数:

pt_count = df.pitch_type.value_counts()

查找需要删除的类型(例如,阈值为2000):

pt_count = pt_count[pt_count<2000]

然后删除这些类型的所有行:

df_new = df[~df.pitch_type.isin(list(pt_count.index))]

通过这种方式,您可以删除原始数据帧中计数低于阈值的pitch_类型

您可以尝试过滤数据帧,如下所示:

pitches_data[pitches_data["count"].astype(int)<1500]

我对棒球一无所知,但这里有一个用熊猫过滤数据帧的解决方案

df = df_new[df["column_of_df"] > 2000]
print(df_new)

使用此方法可以过滤列column_of_df。数据帧df_new包括column_of_df中大于2000的所有条目。您可以使用相同的方法筛选字符串。为此,必须使列等于所需字符串

相关问题 更多 >

    热门问题