gpt4 book ai didi

python - 在 Stata/python 中合并相似的行

转载 作者:太空宇宙 更新时间:2023-11-03 14:08:45 25 4
gpt4 key购买 nike

我正在为图表分析做一些数据准备,我的数据如下所示。

country1   country2   pair      volume
USA CHN USA_CHN 10
CHN USA CHN_USA 5
AFG ALB AFG_ALB 2
ALB AFG ALB_AFG 5

我想把它们组合起来

country1   country2   pair      volume
USA CHN USA_CHN 15
AFG ALB AFG_ALB 7

在 Stata 或 Python 中有没有一种简单的方法可以让我这样做?我尝试制作一个重复的数据框并将“对”重命名为 country2_country1,然后合并它们,并删除重复的卷,但这是一种处理事情的毛茸茸的方法:我想知道是否有更好的方法。

如果知道的话,我的数据格式是针对有向图的,我正在将其转换为无向图。

最佳答案

您的 key 必须由两个国家的集合组成,这样无论顺序如何,它们都比较相等。在 Python/Pandas 中,这可以按如下方式完成。

import pandas as pd
import io

# load in your data
s = """
country1 country2 pair volume
USA CHN USA_CHN 10
CHN USA CHN_USA 5
AFG ALB AFG_ALB 2
ALB AFG ALB_AFG 5
"""
data = pd.read_table(io.BytesIO(s), sep='\s+')

# create your key (using frozenset instead of set, since frozenset is hashable)
key = data[['country1', 'country2']].apply(frozenset, 1)

# group by the key and aggregate using sum()
print(data.groupby(key).sum())

这导致

            volume
(CHN, USA) 15
(AFG, ALB) 7

这并不完全是您想要的,但您应该能够从此处将其调整为正确的形状。

关于python - 在 Stata/python 中合并相似的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41068608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com