相关疑难解决方法(0)

是否有pandas Series(pandas.Series.query())的查询方法或类似方法?

pandas.DataFrame.query()方法在加载或绘图时非常适用于(前/后)过滤数据.它对于方法链尤特别方便.

我发现自己经常想要将相同的逻辑应用于a pandas.Series,例如在完成了df.value_counts返回a之类的方法之后pandas.Series.

让我们假设有一个巨大的列表,Player, Game, Points我想绘制超过14次3分的玩家直方图.我首先必须总结每个球员(groupby -> agg)的积分,这将返回一系列约1000名球员及其总得分.应用.query逻辑它看起来像这样:

df = pd.DataFrame({
    'Points': [random.choice([1,3]) for x in range(100)], 
    'Player': [random.choice(["A","B","C"]) for x in range(100)]})

(df
     .query("Points == 3")
     .Player.values_count()
     .query("> 14")
     .hist())
Run Code Online (Sandbox Code Playgroud)

我找到的唯一解决方案迫使我做一个不必要的任务并打破方法链:

(points_series = df
     .query("Points == 3")
     .groupby("Player").size()
points_series[points_series > 100].hist()
Run Code Online (Sandbox Code Playgroud)

方法链接以及查询方法有助于保持代码清晰,同时子集化过滤可以很快变得混乱.

# just to make my point :)
series_bestplayers_under_100[series_prefiltered_under_100 > 0].shape
Run Code Online (Sandbox Code Playgroud)

请帮助我摆脱困境!谢谢

python series method-chaining dataframe pandas

17
推荐指数
3
解决办法
8588
查看次数

标签 统计

dataframe ×1

method-chaining ×1

pandas ×1

python ×1

series ×1