基于python中另一列的值在python中添加新列

基于python中另一列的值在python中添加新列,python,pandas,count,percentage,Python,Pandas,Count,Percentage,我试图用这个数据集做一些简单的操作 我正在努力: 计算归属于每个群集的计数总数。例如,对于集群0,我必须求和7+4+61+7+12=91 添加一个新列“计数总数”,其中计数总数与相应的群集成对出现(即“群集”列中值为“0”的行在“计数总数”列中的值为91) 将“计数”列除以“计数总数”并乘以100(计算计数百分比)。结果应添加到新列中 有人能帮我写一个代码吗?你可以用 这行代码将为您提供名为total的新列和 此列为第0列至第11列数值的平均值 在这里,你可以用你需要的任何其他运算来替换平均值

我试图用这个数据集做一些简单的操作

我正在努力:

  • 计算归属于每个群集的计数总数。例如,对于集群0,我必须求和7+4+61+7+12=91
  • 添加一个新列“计数总数”,其中计数总数与相应的群集成对出现(即“群集”列中值为“0”的行在“计数总数”列中的值为91)
  • 将“计数”列除以“计数总数”并乘以100(计算计数百分比)。结果应添加到新列中
  • 有人能帮我写一个代码吗?

    你可以用 这行代码将为您提供名为total的新列和 此列为第0列至第11列数值的平均值 在这里,你可以用你需要的任何其他运算来替换平均值

     df['total'] = df.iloc[:,:12].mean()
    
    您可以使用 这行代码将为您提供名为total的新列和 此列为第0列至第11列数值的平均值 在这里,你可以用你需要的任何其他运算来替换平均值

     df['total'] = df.iloc[:,:12].mean()
    
  • 要计算每个群集的计数总数,请使用以下代码:

    total=df.groupby('clusters')['count'].sum().rename('total of counts'))

  • 要添加一个新列“计数总数”,其中计数总数与相应的群集成对出现,请使用以下代码:

    df=df.join(总计,on='clusters',lsuffix='')

  • 要将“计数”列除以“计数总数”并乘以100,请使用以下代码:

    df['counts by total of counts']=df['count']/df['total of counts']*100

  • 要计算每个群集的计数总数,请使用以下代码:

    total=df.groupby('clusters')['count'].sum().rename('total of counts'))

  • 要添加一个新列“计数总数”,其中计数总数与相应的群集成对出现,请使用以下代码:

    df=df.join(总计,on='clusters',lsuffix='')

  • 要将“计数”列除以“计数总数”并乘以100,请使用以下代码:

    df['counts by total of counts']=df['count']/df['total of counts']*100


  • 假设已调用数据帧
    df
    ,则可以执行以下操作:

    第1点 使用clusters列上的
    groupby()
    方法,并使用
    sum()
    聚合方法计算总和,如:

    df_grouped = df.groupby('clusters').sum()
    
    完成后,您可能希望将该数据框中的列重命名为更有用的名称,如:

    df_grouped = df_grouped.rename(columns={'count': 'cluster_count'})
    
    第2点 要将总计返回到数据帧中,您可以将分组的_df与原始数据帧合并,如:

    df_merged = pd.merge(left=df, 
                         right=df_grouped, 
                         left_on='clusters', 
                         right_index=True)
    
    其中,使用“集群”列是左数据帧的键,并使用df_分组数据帧的索引(集群值将在第1点中的
    groupby()
    操作之后的索引中)

    第3点 最后一步现在很简单。只需使用最终数据帧并添加一个包含所需计算结果的新列:

    df_merged['count_pct_cluster'] = df_merged['count'] / df_merged['cluster_count'] * 100
    

    假设已调用数据帧
    df
    ,则可以执行以下操作:

    第1点 使用clusters列上的
    groupby()
    方法,并使用
    sum()
    聚合方法计算总和,如:

    df_grouped = df.groupby('clusters').sum()
    
    完成后,您可能希望将该数据框中的列重命名为更有用的名称,如:

    df_grouped = df_grouped.rename(columns={'count': 'cluster_count'})
    
    第2点 要将总计返回到数据帧中,您可以将分组的_df与原始数据帧合并,如:

    df_merged = pd.merge(left=df, 
                         right=df_grouped, 
                         left_on='clusters', 
                         right_index=True)
    
    其中,使用“集群”列是左数据帧的键,并使用df_分组数据帧的索引(集群值将在第1点中的
    groupby()
    操作之后的索引中)

    第3点 最后一步现在很简单。只需使用最终数据帧并添加一个包含所需计算结果的新列:

    df_merged['count_pct_cluster'] = df_merged['count'] / df_merged['cluster_count'] * 100
    

    非常感谢!!这很简单也很有用。太棒了!非常感谢!!这很简单也很有用。太棒了!