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/