gpt4 book ai didi

python - Pandas 如何对每一行中连接的字符串进行排序?

转载 作者:行者123 更新时间:2023-12-01 01:07:53 24 4
gpt4 key购买 nike

示例数据是:

import pandas as pd
import numpy as np
d=pd.DataFrame({'lender':['tony','wood','tony','tidy'],
'borrower':['wood','tony','wood','tony']})

enter image description here

我想连接贷方借方,最重要的是在每一行中对它们进行排序。总之,我要P:

enter image description here

排序原理与默认的sorted函数相同。例如:

sorted(['tony','wood'])
Out[221]: ['tony', 'wood']

sorted(['wood','tony'])
Out[222]: ['tony', 'wood']
除非必须使用 for 循环,否则首选

apply。在重复我的问题之前请先仔细阅读!

最佳答案

一种解决方案是对每行使用 apply 进行排序和 join :

d['p'] = d[['lender','borrower']].apply(lambda x: '_'.join(sorted(x)), axis=1)
print (d)
lender borrower p
0 tony wood tony_wood
1 wood tony tony_wood
2 tony wood tony_wood
3 tidy tony tidy_tony

或者使用numpy.sort使用 DataFrame 构造函数时,性能很重要:

d1 = pd.DataFrame(np.sort(d[['lender','borrower']], axis=1))
d['p'] = d1[0] + '_' + d1[1]
print (d)
lender borrower p
0 tony wood tony_wood
1 wood tony tony_wood
2 tony wood tony_wood
3 tidy tony tidy_tony

关于python - Pandas 如何对每一行中连接的字符串进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55157520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com