python - Pandas 聚合函数输出到 xlsx

标签 python function pandas dataframe

我有已转向 pandas 数据帧的 sqlite 查询。我已将这些数据帧传递给一个函数以获取聚合信息。如何用函数的结果填充 Excel 工作表?即-如何将函数输出转换为数据帧? (注意-我正在使用 openpyxl 创建工作簿)

这里是 df 和函数的代码:

# Nationwide measure statistics
nationwide_measures = pd.read_sql_query("""select state,
          measure_id,
          measure_name,
          score
from timely_and_effective_care___hospital;""", conn)

# Remove the non-numeric string values from 'score'
nationwide_measures1 = nationwide_measures[nationwide_measures['score'].astype(str).str.isdigit()]

# Change score to numeric
nationwide_measures1['score'] = pd.to_numeric(nationwide_measures1['score'])

# Function to grab measure values
def get_stats(group):
    return {'Minimum': group.min(), 'Maximum': group.max(), 'Average': group.mean(), 'Standard Deviation': group.std()}

# Function output    
nationwide_measures1['score'].groupby(nationwide_measures1['measure_id']).apply(get_stats).unstack()

我试过:

# Function to grab measure values
def get_stats(group):
    return pd.DataFrame({'Minimum': group.min(), 'Maximum': group.max(), 'Average': group.mean(), 'Standard Deviation': group.std()})

但这会返回“值错误:如果使用所有标量值,则必须传递一个索引”

我也试过:

# Function to grab measure values
def get_stats(group):
    df = pd.DataFrame({'Measure Name': group.columns['measure_name'],'Minimum': group.min(), 'Maximum': group.max(), 'Average': group.mean(), 'Standard Deviation': group.std()}, index = [0])
    return df

但这给出了错误:“AttributeError:‘Series’对象没有属性‘columns’”

最佳答案

在您的数据框创建语句 pd.DataFrame 行中,您传递的是所有标量值而不是可迭代对象,因此如果您添加 index = [0],您将获得单行数据框。

pd.DataFrame({'Minimum': group.min(), 'Maximum': group.max(), 'Average': group.mean(), 'Standard Deviation': group.std()},index=[0]) 

关于python - Pandas 聚合函数输出到 xlsx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45151962/

相关文章:

python - Pandas 多个 excel 表中的 dict 列表

python - 高效的列表剔除

python - 无法使用可靠的用户模块为用户分配密码

javascript - 如何在 React 中添加两个 onClick 函数

linux - bash 脚本上的奇怪错误

python - 根据 pandas 中的其他数据帧过滤一个数据帧

python - lstm 时间序列的多步序列的数据转换

python - Django,UserChangeForm 错误

c++ - 如果编译器可以自行内联函数,为什么内联函数必须在 header 中为 "defined"

python - 查找所有 Panda 数据帧的最小索引