使用Pandas在同一数据框中将一行除以另一行并输出到另一行

10

对于这样的数据框:

      dt
                COL000  COL001
      STK_ID                
      Rowname1  2  2
      Rowname2  1  4
      Rowname3  1  1

什么是将行1除以行2的结果添加到同一数据框中的最简单方法?即所需结果为:
                COL000  COL001
      STK_ID                
      Rowname1  2  2
      Rowname2  1  4
      Rowname3  1  1
      Newrow    2  0.5

如果这是一个简单的问题,我很抱歉。我从R背景中逐渐了解pandas。

提前致谢!!!

3个回答

14
下面的代码将通过将行a和行b相除来创建一个新行,该行的索引为d。 create a new row
import pandas as pd


df = pd.DataFrame(data={'x':[1,2,3], 'y':[4,5,6]}, index=['a', 'b', 'c'])

df.loc['d'] = df.loc['a'] / df.loc['b']

print(df)
#      x    y
# a  1.0  4.0
# b  2.0  5.0
# c  3.0  6.0
# d  0.5  0.8

2
为了访问前两行而不考虑索引,可以使用以下代码:
df.loc['newrow'] = df.iloc[0] / df.iloc[1]

如果您想要进行跟随,请遵循@Ffisegydd的解决方案...

此外,如果您想要添加多个行,请使用pd.DataFrame.append函数。


这将创建一个名为“newrow”的新列,而不是一行。 - Ffisegydd
该死,忘记了 loc。好了,现在修复了。主要目的是展示如何通过行号访问行。 - acushner

0

pandas会逐行处理所有工作。通过包含另一个元素,它还会解释您想要一个新列:

data['new_row_with_division'] = data['row_name1_values'] / data['row_name2_values']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接