以DataFrame的形式全量读取STK.STK_FRT数据表,按照RESPONSER列对所有数据计算回复及时率,将结果DataFrame输出如下列数据['姓名', '及时回复次数', '应回复次数','及时回复率']。
时间: 2023-12-01 14:03:37 浏览: 84
子表数据“及时计算”代码(ext)
可以使用以下代码实现:
```python
import pandas as pd
# 从数据库中读取STK.STK_FRT数据表
connection = # 数据库连接对象
df = pd.read_sql('SELECT * FROM STK.STK_FRT', connection)
# 计算每个RESPONSER的回复次数、及时回复次数和及时回复率
total_responses = df.groupby('RESPONSER')['RESPONSER'].count()
timely_responses = df.query('RESPONSE_TIME <= DUE_TIME').groupby('RESPONSER')['RESPONSER'].count()
timely_response_rate = timely_responses / total_responses
# 将计算结果存入新的DataFrame
result_df = pd.DataFrame({
'姓名': total_responses.index,
'及时回复次数': timely_responses.values,
'应回复次数': total_responses.values,
'及时回复率': timely_response_rate.values
})
# 输出结果
print(result_df)
```
该代码首先使用`pd.read_sql`函数从数据库中读取STK.STK_FRT数据表,并存入DataFrame对象`df`中。然后使用`groupby`函数按RESPONSER列对数据进行分组,并计算每个RESPONSER的总回复次数和及时回复次数。计算及时回复率时,使用了两个Series对象的相除操作。
接着,将计算结果存入新的DataFrame对象`result_df`中,并将列名修改为中文。最后,使用`print`函数输出结果。
阅读全文