gpt4 book ai didi

python - 在 Pandas 系列中对行中的值进行排序的方法?

转载 作者:行者123 更新时间:2023-11-28 21:08:42 24 4
gpt4 key购买 nike

考虑以下 pandas.Series 对象:

import pandas as pd

s = pd.Series(["hello there you would like to sort me", "sorted i would like to be", "the yankees played the red sox", "apple apple banana fruit orange cucumber"])

我想对每行的值进行排序,类似于以下方法:

for row in s.index:
split_words = s.loc[row].split()
split_words.sort()
s.loc[row] = " ".join(split_words)

但是,我有一个庞大的数据集,因此矢量化在这里很重要。我如何使用 pandas str 属性来完成同样的事情,但速度要快得多?

最佳答案

我体验过 Python 列表在这些情况下表现更好。应用 piRSquared 的逻辑,列表理解将是:

[' '.join(sorted(sentence.split())) for sentence in s.tolist()]

对于计时,我使用了来自 Peter Norvig's website 的莎士比亚作品.

s = pd.read_table('shakespeare.txt', squeeze=True, header=None)
s = pd.Series(s.tolist()*10)
r1 = s.str.split().apply(sorted).str.join(' ')
r2 = pd.Series([' '.join(sorted(sentence.split())) for sentence in s.tolist()])

r1.equals(r2)
Out: True

%timeit s.str.split().apply(sorted).str.join(' ')
1 loop, best of 3: 2.71 s per loop

%timeit pd.Series([' '.join(sorted(sentence.split())) for sentence in s.tolist()])
1 loop, best of 3: 1.95 s per loop

关于python - 在 Pandas 系列中对行中的值进行排序的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39354531/

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