Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫分组和总和_Python_Pandas - Fatal编程技术网

Python 熊猫分组和总和

Python 熊猫分组和总和,python,pandas,Python,Pandas,我有一个pandas数据框,它由三列a、B、C组成,我需要根据行值求和 下面是场景 A B C Distance_a distance_b 5 Distance_a distance_c 6 distance_b distance_c 7 distance_b distance_d 7 distance_d Distance_a 9 如果我想找出距离Distangia

我有一个pandas数据框,它由三列a、B、C组成,我需要根据行值求和

下面是场景

A            B               C

Distance_a  distance_b       5
Distance_a  distance_c       6

distance_b  distance_c       7

distance_b  distance_d       7

distance_d  Distance_a       9

如果我想找出距离Distangia A的累积距离,我需要我的代码加上5、6,也应该考虑最后一列,即DistangsId距离αA,它需要加上9以及


因此,与a的累积距离将为5+6+9=20。有一个简单的解决方法,假设您的原始数据帧是df,那么您只需要:

pd.concat([df['A','C']],
df[['B','C']].重命名(列={'B':'A'})],
sort=False)。groupby('A')。sum()

基本上,我所做的是将df[['A','C']]和df[['B','C']]合并在一起(同时将第二个df列重命名为['A','C']),然后groupby

@Hongpei的答案当然更有效,但如果你只想得到距离的和。您也可以执行以下操作

import pandas as pd

# initialize list of lists
data = {'A':['distance_a', 'distance_a', 'distance_b', 'distance_b', 'distance_d'],
        'B':['distance_b', 'distance_c', 'distance_c', 'distance_d', 'distance_a'],
        'C':[5, 6, 7, 7, 9]}

# Create the pandas DataFrame
df = pd.DataFrame(data)

# Group by columns A and B individually
col_A_groupby = df.groupby(['A']).sum()
col_B_groupby = df.groupby(['B']).sum()

# Sum the values together
dist_a_sum = col_A_groupby.loc['distance_a'] + col_B_groupby.loc['distance_a']

IIUC,a
melt
sum
就足够了

s = df.melt('C').groupby('value').C.sum()
print(s)

Out[113]:
value
Distance_a    20
distance_b    19
distance_c    13
distance_d    16
Name: C, dtype: int64

如果您可以首先提供包含数据的原始数据帧代码,这将非常有用。您希望输出什么?