我有两列,一列是买家 ID,一列是卖家 ID。我试图简单地找出两者的哪种组合出现最多。
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,所以两个相同,但我需要将它们汇总在一起。我如何将其写入我的函数以允许买家和卖家互换的情况?
最佳答案
您可以通过 sorted
在 lambda 函数中对值进行排序:
df['TwoCptys']=df[cols].astype(str).apply(lambda x: '+'.join(sorted(x)), axis=1)
或者在由 np.sort
转换为二维数组的列中:
df['TwoCptys']= (pd.DataFrame(np.sort(df[cols].values, axis=1))
.astype(str).apply('+'.join, axis=1))
关于python - 如何合并这两列? Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56271979/