result = grouped.agg({df.columns[8]: ['max', 'mean'], df.columns[5]: ['max', 'mean']}),其中第6列的内存有单位,该怎么解决
时间: 2023-10-31 19:04:36 浏览: 72
这个问题中涉及到对数据集的聚合操作,其中第6列的内存含有单位,需要先将单位去除,再进行聚合操作。您可以使用str.replace()函数将单位替换为空字符,然后再将其转换为浮点数的形式进行聚合。示例代码如下:
```
df[df.columns[6]] = df[df.columns[6]].str.replace(' GB','').astype(float)
result = grouped.agg({df.columns[8]: ['max', 'mean'], df.columns[5]: ['max', 'mean']})
```
其中,`df[df.columns[6]].str.replace(' GB','')`将数据集中第6列的GB单位替换为空字符,`astype(float)`将其转换为浮点数格式。最后按照需要进行聚合操作即可。
相关问题
代码简写:import pandas as pd # 1. 读取指定表格 df1 = pd.read_excel('result-new.xlsx', sheet_name='Sheet1') df2 = pd.read_excel('基础数据-new.xlsx', sheet_name='本外币') df3 = pd.read_excel('基础数据-new.xlsx', sheet_name='人民币') # 标的表索引列位置及数据位置 grouped = df2.groupby(df2.columns[1]).agg({df2.columns[2]: 'sum', df2.columns[5]: 'sum'}).reset_index() grouped1 = df3.groupby(df2.columns[1]).agg({df3.columns[2]: 'sum', df3.columns[5]: 'sum'}).reset_index() # 合并表1和表2的结果 result = pd.merge(df1, grouped, left_on=df1.columns[1], right_on=grouped.columns[0], how='left') result = pd.merge(result, grouped1, left_on=df1.columns[1], right_on=grouped.columns[0], how='left') # 输出结果到文件 result.to_excel('531本外币比年初.xlsx', index=False)
import pandas as pd
# 读取指定表格
df1, df2, df3 = pd.read_excel('result-new.xlsx', sheet_name='Sheet1'), pd.read_excel('基础数据-new.xlsx', sheet_name='本外币'), pd.read_excel('基础数据-new.xlsx', sheet_name='人民币')
# 标的表索引列位置及数据位置
grouped = df2.groupby(df2.columns[1]).agg({df2.columns[2]: 'sum', df2.columns[5]: 'sum'}).reset_index()
grouped1 = df3.groupby(df3.columns[1]).agg({df3.columns[2]: 'sum', df3.columns[5]: 'sum'}).reset_index()
# 合并表1和表2的结果
result = pd.merge(df1, grouped, left_on=df1.columns[1], right_on=grouped.columns[0], how='left')
result = pd.merge(result, grouped1, left_on=df1.columns[1], right_on=grouped1.columns[0], how='left')
# 输出结果到文件
result.to_excel('531本外币比年初.xlsx', index=False)
grouped.agg({df.columns[8]: ['mean', 'max']}),对结果以平均值排倒序
好的,您的第一个问题是:将数据框按照某一列进行分组,并对另一列计算平均值和最大值,然后以平均值为关键字对结果进行倒序排列。问题已经清晰明确,接下来我会给出解答。请您稍等片刻。
您可以使用下面的代码实现这个功能:
```
result = grouped.agg({df.columns[8]: ['mean', 'max']})
result = result.sort_values(by=(df.columns[8], 'mean'), ascending=False)
```
这里的 `result` 是一个新的数据框,它包含了分组后的平均值和最大值。`sort_values` 函数以 `mean` 列作为排列关键字,然后按照降序排列。注意,这里 `by` 参数需要使用一个元组,因为我们对两列进行了计算。
希望我的回答能够解决您的问题。如果还有其他问题,欢迎随时提出。
阅读全文