首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何组合这两列?熊猫

如何组合这两列?熊猫
EN

Stack Overflow用户
提问于 2019-05-23 17:20:44
回答 2查看 36关注 0票数 1

我有两列,一列是买方ID,另一列是卖方ID。我想简单地找出哪一种组合出现得最多。

代码语言:javascript
复制
def twoCptyFreq(df,col1,col2):
    cols=[col1,col2]
    df['TwoCptys']=df[cols].astype(str).apply('+'.join, axis=1)
    return (df)

newdf=twoCptyFreq(tradedf,'BuyerID','SellerID')

我得到了我想要的结果,但有时我会得到1234+7651和7651+1234,所以这两个是一样的,但我需要把它们聚合在一起。我如何将其写入我的函数中,以支持买方和卖方可能被交换的情况?

EN

回答 2

Stack Overflow用户

发布于 2019-05-23 17:23:46

您可以按sorted对lambda函数中的值进行排序

代码语言:javascript
复制
df['TwoCptys']=df[cols].astype(str).apply(lambda x: '+'.join(sorted(x)), axis=1)

或通过np.sort转换为二维数组的列

代码语言:javascript
复制
df['TwoCptys']= (pd.DataFrame(np.sort(df[cols].values, axis=1))
                   .astype(str).apply('+'.join, axis=1))
票数 3
EN

Stack Overflow用户

发布于 2019-05-23 17:45:01

代码语言:javascript
复制
df=pd.DataFrame({'A':[1,1,1],'B':[2,3,2],'C':[9,9,9]})

df['combination']=df['A'].astype(str) + '+' + df['B'].astype(str)

df['combination'].value_counts()
out[]:
1+2    2
1+3    1
Name: combination, dtype: int64

#This shows combination of df[A] ==1 and df[B] ==2 has more occurences
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56271979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档