Python 如果数据帧中的数据流相同,如何对它们进行分组?
假设我有上面的数据帧,如果行中的1和2是相同的,如何将它们分组为[3647 555],并将它们的总延迟添加到3.3,从而得到一个新的数据帧 我必须这样做,以获得更多的数据Python 如果数据帧中的数据流相同,如何对它们进行分组?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,假设我有上面的数据帧,如果行中的1和2是相同的,如何将它们分组为[3647 555],并将它们的总延迟添加到3.3,从而得到一个新的数据帧 我必须这样做,以获得更多的数据 import pandas as pd row_1 = pd.Series({'Address A': 3647, 'Address B': 555, 'Total Delay': 1.2}) row_2 = pd.Series({'Address
import pandas as pd
row_1 = pd.Series({'Address A': 3647,
'Address B': 555,
'Total Delay': 1.2})
row_2 = pd.Series({'Address A': 555,
'Address B': 3647,
'Total Delay': 2.1})
row_3 = pd.Series({'Address A': 4567,
'Address B': 555,
'Total Delay': 0.6})
df = pd.DataFrame([row_1, row_2, row_3], index = [1, 2, 3])
df.head()
output:
Address A Address B Total Delay
1 3647 555 1.2
2 555 3647 2.1
3 4567 555 0.6
首先,我们使用
np对索引轴(每行)上的地址A
和地址B
进行排序。然后我们在这些列上使用GroupBy
,并首先使用sum
+:
Address A Address B Total Delay
1 3647 555 3.3
3 4567 555 0.6
如果希望列的顺序准确,请使用DataFrame.reindex
:
Address A Address B No. Total Delay
0 3647 555 1 3.30
1 4567 555 3 0.60
标准是什么?A和B是相同的,但却是相反的?同时给出一个可再现问题的代码,用这些数据创建一个小的datafram。请假设a是源地址,B是目标地址,在第1行a与B通信,在第2行B与a通信。因此,它们是同一流程的一部分。
Address A Address B No. Total Delay
0 3647 555 1 3.30
1 4567 555 3 0.60
dfg = dfg.reindex(df.columns, axis='columns')
No. Address A Address B Total Delay
0 1 3647 555 3.30
1 3 4567 555 0.60