python - 如何合并这两列? Pandas

标签 python python-3.x pandas combinations

我有两列,一列是买家 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/

相关文章:

python - 在 Signal Handler 中调用 Async 函数,Asyncio

python - 从纯文本文件导入字典

python - 将值范围映射到字符串

python - 在 Pandas 的另一个循环中运行一个循环

python - 从 pandas Dataframe 获取给定日期的数据

python - scikits.learn 曲线拟合参数的聚类方法

python - 如何使用 pyspark 从 Kafka 获取并打印一行?必须使用 writeStream.start() 执行流式源查询

python - 朱皮特 : Line magic function not found

python-3.x - 有没有办法删除Python字符串中直到某个元素的元素?

python - 使用 rank (Python) 对字符串的频率分布进行排序