gpt4 book ai didi

python - Pandas - 通过不规则字符串模式的计算创建新列

转载 作者:太空宇宙 更新时间:2023-11-03 20:25:13 24 4
gpt4 key购买 nike

我在 pandas 数据框中有一些数据,如下所示:

|           Data           | 
----------------------------
| 10-9 8-6 100-2 |
----------------------------
| 1-2 3-4 |
----------------------------
| 55-45 |
----------------------------

现在我的问题是,使用 pandas,执行以下操作的最佳方法是什么:

  • 计算连字符之前的第一个数字的平均值,以及连字符之后的数字的平均值。

  • 从第一个值中减去第二个值,然后放入新列中。

例如,对于第一行,新列中的值将为:average(10, 8, 100) -average(9, 6, 2)

我猜我需要使用某种 lambda 函数,但我不知道如何去做。

感谢任何帮助。谢谢!

最佳答案

创建一个函数来包含字符串解析逻辑:

import pandas as pd
import numpy as np

def string_handling(string):
values = [it for it in string.strip().split(' ') if it]
values = [v.split('-') for v in values]
first_values = [int(v[0]) for v in values]
second_values = [int(v[1]) for v in values]
return pd.Series([np.mean(first_values), np.mean(second_values)])

应用函数:

df[['first_value','second_value']] = df['Data'].apply(string_handling)
df['diff'] = df['first_value'] - df['second_value']

关于python - Pandas - 通过不规则字符串模式的计算创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57878438/

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