gpt4 book ai didi

python - 在 Pandas 数据框中的成对行上应用函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:19 24 4
gpt4 key购买 nike

我是 pandas dataframe 的新手,我想应用一个函数在同一列中获取几行。就像您应用函数 diff() 时一样,但我想计算文本之间的距离。所以我定义了一个测量距离的函数,我尝试使用 apply 但我不知道如何选择几行。下面我展示了一个我尝试做的例子以及我的期望:

def my_measure_function(x,y):
return some_distance_calculus(x,y)

>>> from pandas import DataFrame
>>> df = DataFrame({"text": ['hello','hella','hel'], "B": [3,4,4]})
>>> df['dist'] = df.apply(lambda x, y: my_measure_function(x, y), axis=0)

但它不起作用。我想要获得的是:

>>> df
text B dist
0 hello 3 0
1 hella 4 1
2 hel 4 2

在此先感谢您能为我提供的任何帮助。

最佳答案

您可能希望避免 pd.DataFrame.apply , 作为 performance may suffer .相反,您可以将 mappd.Series.shift 一起使用:

df['dist'] = list(map(my_measure_function, df['text'], df['text'].shift()))

或者通过列表理解:

zipper = zip(df['text'], df['text'].shift())
df['dist'] = [my_measure_function(val1, val2) for val1, val2 in zipper]

关于python - 在 Pandas 数据框中的成对行上应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52711358/

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