python - 如何在 Pandas 数据框中添加另一个配对列?

标签 python pandas dataframe

df = pd.DataFrame({'col1':['a-b', 'c-d', 'e-f', 'g-h', 'i-j', 'k-l','b-a', 'd-c', 'f-e', 'h-g', 'j-i', 'l-k']})

尽管顺序似乎颠倒了,但您有一个组合重叠的列。但是如何在另一侧添加另一列以实际显示它们是相同的,如下所示:

df2 = pd.DataFrame({'col1':['a-b', 'c-d', 'e-f', 'g-h', 'i-j', 'k-l','b-a', 'd-c', 'f-e', 'h-g', 'j-i', 'l-k']
,'col2':['a-b', 'c-d', 'e-f', 'g-h', 'i-j', 'k-l','a-b', 'c-d', 'e-f', 'g-h', 'i-j', 'k-l']})

真实的数据是alpha beta的顺序不可预测的,很头疼。

提前谢谢你。

最佳答案

map with ord 并获取每一行的 sum ,然后是groupby()+transform('first'):

f = df['col1'].str.split('-').explode().map(ord).sum(level=0)
df.assign(col2=df.groupby(f).transform('first'))

   col1 col2
0   a-b  a-b
1   c-d  c-d
2   e-f  e-f
3   g-h  g-h
4   i-j  i-j
5   k-l  k-l
6   b-a  a-b
7   d-c  c-d
8   f-e  e-f
9   h-g  g-h
10  j-i  i-j
11  l-k  k-l

关于python - 如何在 Pandas 数据框中添加另一个配对列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61322281/

相关文章:

python - 如何在 numpy 中获取两个索引数组之间的矩阵元素?

Python Pandas : Select data and ignoring KeyErrors

python - 根据其他列的条件在 python 中创建数据框列

python - 如何根据另一个数据帧上的列对数据帧的行进行分类?

python - 将 3 列数据框转换为矩阵

python - 删除任意列中具有特定值的行

python os.path.dirname 使用 Windows 网络路径产生错误的结果

python - 为什么这些代码不能直观地显示从图像中提取的正确颜色?

python - 从 beautifulsoup 的列表中选择链接

python - Pandas 查找一系列日期 24 小时内的行