簡體   English   中英

按特定列中的值頻率限制 DataFrame 行

[英]Limit DataFrame rows by value frequency in specific column

基本上我有一個基本的 dataframe,在這個 dataframe 中有一個“流媒體服務”列。 我想將結果限制為每個服務提供商的前 5 條記錄。 換句話說,我想將這個 dataframe 從可能的數千條節目記錄限制到每個流媒體服務的最后 5 條。

import pandas as pd
import numpy as np

data = {'Show Name': ['GameOfThrones', 'StrangerThings', 'Casual', ...], 
        'Streaming Service': ['HBO', 'Netflix', 'Hulu']}
df1 = pd.DataFrame(data)

這樣做的最佳方法是什么?

df1.groupby('Streaming Service').head(5)

我最終想出了自己的解決方案。 問題過於復雜:

service_dfs = []

for c in df['Streaming Service'].unique():
    df_c = df.loc[df[ 'Streaming Service'] == c].tail(100)
    service_dfs.append(df_c)
df = pd.concat(service_dfs)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM