【问题标题】:How to divide Pandas DataFrame with multiple square root values?如何用多个平方根值划分 Pandas DataFrame?
【发布时间】:2020-04-09 10:57:15
【问题描述】:

这是我的 DataFrame 的示例:

X     Y
4.2  3.0
6.8  4.7
8.4  2.1

我想实现一个公式,但遇到了一些错误。我想找到 X 平方除以 X 平方 + Y 平方之和的值。

公式如下所示:

Z = X2/(X2 + Y**2)

我希望我的新 DataFrame 仍然有“X”和“Y”列,但也有一个新的“Z”列,它将包含我的公式的输出。 “Z”列会将公式应用于每一行。

X     Y    Z
4.2  3.0  .58
6.8  4.7  .59
8.4  2.1   .8

我尝试使用下面的公式,但它不起作用:

df['Z'] = (df['X']**2/(df['X']**2 + df['Y']**2)

【问题讨论】:

  • (df['X']**2/(df['X']**2 + df['Y']**2)) 产生的结果与下面的答案完全相同。为什么它对你不起作用?显然你缺少一个右括号,但我假设你的问题不是那么微不足道。
  • 他想要mul@cs95,我检查了输出

标签: python pandas arithmetic-expressions


【解决方案1】:

用途:

df['Z'] = df['X'].mul(2)/( df['X'].mul(2) + df['Y'].mul(2) )
#df['Z'] = df['X']*2/( df['X']*2 + df['Y']*2 )

df['Z'] = df['X'].mul(2)/df.mul(2).sum(axis=1)

#If you want select the columns
#df['Z'] = df['X'].mul(2)/df[['X','Y']].mul(2).sum(axis=1) 

输出:

     X    Y         Z
0  4.2  3.0  0.583333
1  6.8  4.7  0.591304
2  8.4  2.1  0.800000

【讨论】:

  • 提请@ansev先生及时回复!非常感谢 =)
猜你喜欢
  • 1970-01-01
  • 2014-09-23
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 2020-08-02
相关资源
最近更新 更多