Python 基于特定行获取熊猫中列的平均值

Python 基于特定行获取熊猫中列的平均值,python,pandas,dataframe,average,Python,Pandas,Dataframe,Average,我有一个数据,存储了一天、一个月、三个月和一年内股票价值的百分比变化 ID daychange monthchange trimonthchange yearchange UNITY 0.001666 0.398450 0.411581 0.689139 SSOM -0.033359 0.040816 1.174840 3.047619 PNSC -0.004953 -0.053006 0.15

我有一个数据,存储了一天、一个月、三个月和一年内股票价值的百分比变化

ID     daychange   monthchange   trimonthchange  yearchange
UNITY   0.001666     0.398450        0.411581    0.689139
SSOM  -0.033359     0.040816        1.174840    3.047619
PNSC  -0.004953    -0.053006        0.158677    0.224932
PICT  -0.002027    -0.069696        0.041143    0.310791
PIBTL  -0.014848     0.129362        0.459846    0.287100
我想得到:

  • 基于ID名称的4个时间段的平均值。例如,“UNITY”、“SSOM”、“PNSC”将被分组,并计算每个时间段的平均值(即,集团的平均日变化、集团的平均月变化等)
  • 将平均数据放入一个单独的csv文件中,包含一个新的单行(而不是“UNITY”“SSOM”“PNSC”)和组的每个时间段的平均值
  • 我尝试了
    df.mean(axis=1)
    ,但这不起作用


    任何帮助都将不胜感激!谢谢

    您可能需要链接
    过滤器
    均值
    函数调用。因为您首先要选择一组要保留的行,所以需要过滤掉不需要保留的行。然后,使用新的数据集,您需要执行列平均

    df.filter(lambda行:在[“UNITY”、“SSOM”、“PNSC”]中的row.ID)。平均值(轴=1)
    
    注意,我没有测试上述代码,也不保证它能正常工作。

    使用标签(
    ID
    column)访问一组行,然后使用
    axis=0
    计算每个时间段列的平均值。使用组名创建一个
    系列
    ,并将以前的结果附加到该系列中(这样组名将成为
    数据框中的第一列
    )。将
    系列
    放在列表中,然后在对组进行迭代后,转换为
    数据帧
    。要将结果放入单独的csv文件,请使用

    数据的输出

             groupName  daychange  monthchange  trimonthchange  yearchange
    0  UNITY-SSOM-PNSC  -0.012215     0.128753        0.581699    1.320563
    1  SSOM-PICT-PIBTL  -0.016745     0.033494        0.558610    1.215170
    2  SSOM-PNSC-PIBTL  -0.017720     0.039057        0.597788    1.186550
    

    它不:/return self.reindex(**{name:[r代表项目中的r,如果标签中的r]})TypeError:“function”对象不是iterableThanks,请回答!你知道为什么它会给出raisekeyerror(f“列中没有{missing}”)KeyError:“['ID']中没有一个在列中”我已经将你在问题中发布的数据框复制到一个
    sample.csv
    ,这就是为什么我使用
    sep='\s+
    。如果您的CSV文件具有默认分隔符(
    ),您可以删除
    sep
    参数,并且应该可以工作。另外,您可以始终
    打印(df.head())
    以确保数据帧具有预期的结构。谢谢!!它起作用了。最后,出于我的好奇心,如果我想将组名更改为更简洁、更习惯的名称,你能提出一些建议吗?在有限的上下文中给出相关建议是一个挑战,但直接的改进是将列表列表从
    更改为
    字典
    (例如
    groupDict={'G1':['UNITY'、'SSOM'、'PNSC']、'G2':['SSOM'、'PICT'、'PIBTL']}
    ),使用
    键作为组名。
    
             groupName  daychange  monthchange  trimonthchange  yearchange
    0  UNITY-SSOM-PNSC  -0.012215     0.128753        0.581699    1.320563
    1  SSOM-PICT-PIBTL  -0.016745     0.033494        0.558610    1.215170
    2  SSOM-PNSC-PIBTL  -0.017720     0.039057        0.597788    1.186550