如何计算数据框中唯一值满足要求的次数?

时间:2021-02-12 18:14:42

标签: python

我在 df 中总共有大约 9000 行和 26 个不同的单位。 df 的示例如下:

<头>
单位 Total_time
E271 0 天 00:05:32

我想创建一个列,其中包含每个单位在 df 中出现的次数,以及一个单独的列,用于计算每个单位的时间低于 6 分钟的次数。新的 df 应如下所示:

<头>
单位 Total_dispatches Amount_time_under Perc_success_rate
E271 1154 883 76.5%

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

你可以这样做:

data = [
    {"Unit": "E1", "Total_time":pd.to_timedelta('0 days 00:05:01.00003')},
    {"Unit": "E1", "Total_time":pd.to_timedelta('0 days 00:07:01.00003')},
    {"Unit": "E1", "Total_time":pd.to_timedelta('0 days 00:05:01.00003')}  
]

df = pd.DataFrame(data)


df["Total_dispatches"] = df.groupby("Unit").transform("count")

time_limit = pd.to_timedelta('0 days 00:06:00.00000')
df["under_6_min"] = (df["Total_time"]<time_limit).astype(int)

df["Amount_time_under"] = df.groupby("Unit")["under_6_min"].transform("sum")

df["Perc_success_rate"] = (df["Amount_time_under"]/df["Total_dispatches"])*100