按CARRIER分组计算RSRP列中位数并导出Excel格式问题求助
问题解决:分组计算中位数并导出预期格式的Excel
你的代码问题在于:groupby(['CARRIER'])['RSRP'].median() 返回的是Series,其中CARRIER是索引而非数据列。当调用to_excel(index=False)时,索引会被丢弃,导致导出的Excel只有中位数一列,缺失CARRIER列。
以下两种方法可以解决这个问题:
方法一:分组时直接保留CARRIER为列
在groupby中设置as_index=False,让分组结果直接生成包含CARRIER列的DataFrame:
import pandas as pd df = pd.read_excel('Carriers.xlsx') # 分组时指定as_index=False,保留CARRIER作为数据列 df4 = df.groupby(['CARRIER'], as_index=False)['RSRP'].median() # 导出时index=False,确保不会额外生成索引列 df4.to_excel('Median.xlsx', index=False)
方法二:将结果Series转为DataFrame并重置索引
如果已经得到了分组后的Series,可以通过reset_index()把索引转为列:
import pandas as pd df = pd.read_excel('Carriers.xlsx') car_grp = df.groupby(['CARRIER']) df4 = car_grp['RSRP'].median() # 将Series转为DataFrame,把CARRIER索引转为列,同时自定义中位数列名(可选) df4 = df4.reset_index(name='RSRP_Median') df4.to_excel('Median.xlsx', index=False)
两种方法都能生成包含CARRIER和对应中位数的Excel文件,匹配你的预期格式。
内容的提问来源于stack exchange,提问作者syed
相关产品推荐
相关产品推荐

