gpt4 book ai didi

python - 如何将函数应用于 Pandas 数据框中的每一行?

转载 作者:行者123 更新时间:2023-12-04 09:43:59 27 4
gpt4 key购买 nike

我对编码很陌生,所以这可能很简单,但到目前为止我找到的答案都没有以我能理解的方式提供信息。

我想取一列数据并应用一个函数 (a x e^bx),其中 a > 0 和 b < 0。在这种情况下,(x) 将是我数据每一行中的浮点值。

看看我到目前为止有什么,但我不知道从哪里开始......

def plot_data():

# read the file
data = pd.read_excel(FILENAME)

# convert to pandas dataframe
df = pd.DataFrame(data, columns=['FP Signal'])

# add a blank column to store the normalized data
headers = ['FP Signal', 'Normalized']
df = df.reindex(columns=headers)
df.plot(subplots=True, layout=(1, 2))
df['Normalized'] = df.apply(normalize(['FP Signal']), axis=1)
print(df['Normalized'])
# show the plot
plt.show()

# normalization formula (exponential) = a x e ^bx where a > 0, b < 0
def normalize(x):
x = A * E ** (B * x)
return x

我可以显示此图像,但不能显示“标准化”数据...

Subplot image of raw data and normalized data

谢谢你的帮助!

最佳答案

你的代码几乎是正确的。

# normalization formula (exponential) = a x e ^bx where a > 0, b < 0
def normalize(x):
x = A * E ** (B * x)
return x

def plot_data():

# read the file
data = pd.read_excel(FILENAME)

# convert to pandas dataframe
df = pd.DataFrame(data, columns=['FP Signal'])

# add a blank column to store the normalized data
headers = ['FP Signal', 'Normalized']
df = df.reindex(columns=headers)
df['Normalized'] = df['FP Signal'].apply(lambda x: normalize(x))
print(df['Normalized'])
df.plot(subplots=True, layout=(1, 2))
# show the plot
plt.show()

我改了 apply行到以下内容: df['FP Signal'].apply(lambda x: normalize(x)) .
它只需要 df['FP Signal'] 上的值,因为您不需要整行。 lambda x状态当前值分配给 x,我们将其发送以进行归一化。

您也可以写信 df['FP Signal'].apply(normalize)这更直接,更简单。使用 lambda 只是我个人的偏好,但许多人可能不同意。

一个小的补充是放 df.plot(subplots=True, layout=(1, 2))更改数据框后。如果您在更改数据框之前绘图,您将看不到绘图中的任何更改。 df.plot实际在做剧情, plt.show只是显示它。这就是为什么 df.plot必须在您处理完数据之后。

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

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