如何将PANDAS数据帧的一行添加到其余行?

高炉

如果熊猫数据框df包含:

    A    B    C    D
a   1    2    3    4
b   2    NaN  NaN  5
c   NaN  7    NaN  2
d   NaN  2    4    3

如何将第一行添加到所有其余行(仅在它们包含数字的地方)以获取结果数据框:

    A    B    C    D
b   3    NaN  NaN  9
c   NaN  9    NaN  6
d   NaN  4    7    7

我打算这样做,然后制作一个行名称字典,并将第一个表的每一行的列乘积除以第二个表中的同一行,然后将值保存在字典中。我的工作代码可以做到这一点(如下),但是我担心它不够“ PANDAS”,并且对于我要执行的简单任务而言过于繁琐。我有最佳的解决方案,还是缺少明显的东西?

如果熊猫代码仍然需要遍历行,那是不值得的,但是我觉得应该有一种方法可以就地进行。

代码:

import numpy as np
import pandas as pd

dindex = [1,2,3] #indices of drugs to select (set this)

def get_drugs(): #generates random "drug characteristics" as pandas df
    cduct = ['dose','g1','g2','g3','g4','g5']
    drg = ['d1','d2','d3','d4']
    return pd.DataFrame(abs(np.random.randn(6,4)),index=cduct,columns=drg)

def sel_drugs(dframe, selct): #removes unwanted drugs from df.
    #Pass df and dindex to this function
    return dframe.iloc[:,selct].values, dframe[1:].index.tolist()
    #returns a tuple of [values, names]

def cal_conduct(val, cnames): #calculates conductance scaling.
    #Pass values and names to this function
    cduct = {} #initialize dict
    for ix, gname in enumerate(cnames):
        _top = val[ix+1]; _bot = val[0]+val[ix+1]
        cduct[gname] = (np.product(_top[np.isfinite(_top)])/
                        np.product(_bot[np.isfinite(_bot)]))
    return cduct #return a dictionary of scaling factors

def main():
    selection =  sel_drugs(get_drugs(),dindex)
    print cal_conduct(selection[0], selection[1])

main()
杰夫

熊猫会自动对齐/广播,因此很简单

In [8]: df
Out[8]: 
    A   B   C  D
a   1   2   3  4
b   2 NaN NaN  5
c NaN   7 NaN  2
d NaN   2   4  3

In [11]: df.iloc[1:] + df.iloc[0]
Out[11]: 
    A   B   C  D
b   3 NaN NaN  9
c NaN   9 NaN  6
d NaN   4   7  7

第二部分是这个,如果我没看错的话

In [12]: df2 = df.iloc[1:] + df.iloc[0]

In [13]: df.prod()
Out[13]: 
A      2
B     28
C     12
D    120
dtype: float64

In [14]: df2/df.prod()
Out[14]: 
     A         B         C         D
b  1.5       NaN       NaN  0.075000
c  NaN  0.321429       NaN  0.050000
d  NaN  0.142857  0.583333  0.058333

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将一行添加到另一行

来自分类Dev

如何将文本从一行添加到另一行的末尾?

来自分类Dev

如何将数据添加到dataGridView1的最后一行/最后一列?

来自分类Dev

循环遍历数据帧的每一行,并根据条件将元素添加到数据帧

来自分类Dev

在用查询中的 MPmedia 项目填充之前,如何将数据添加到表的第一行?

来自分类Dev

如何从其余数据集中选择一行并将其添加到python中的初始矩阵中?

来自分类Dev

如何将数据帧附加到另一个数据帧的每一行?

来自分类Dev

Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据帧

来自分类Dev

如何将删除操作添加到具有值id的每一行

来自分类Dev

如何将类添加到折线图中的每一行

来自分类Dev

如何将数组添加到二维数组中的每一行?

来自分类Dev

如何将重复的行添加到Pandas DF?

来自分类Dev

如何使用熊猫将值添加到数据框的每一行?

来自分类Dev

如何将数据行添加到特定列?

来自分类Dev

如何将行添加到数据框?

来自分类Dev

如何将按数据帧分组的另一行减去另一行?

来自分类Dev

如何将数据框变量名移动到第一行并将新变量名添加到列表中的多个数据框?

来自分类Dev

如何将数据帧1的每一行与数据帧2的每一行进行比较?

来自分类Dev

如何将数据帧1的每一行与数据帧2的每一行进行比较?

来自分类Dev

如何将JLabel添加到JPanel中的每个第一行,第一个col

来自分类Dev

Pandas 尝试将一行附加到数据帧,但不断覆盖现有行

来自分类Dev

如何将一个文件中的一行一行添加到另一个文件中

来自分类Dev

如何将约束添加到sql表,以使表恰好有一行

来自分类Dev

蟒蛇| 如何将字符串添加到 csv 文件中的每一行?

来自分类Dev

根据上一行中的日期将行添加到数据框中

来自分类Dev

根据R中前一行的条件将行添加到数据框

来自分类Dev

如何将复选框动态添加到每一行,然后再将其添加到表中

来自分类Dev

如何将复选框动态添加到每一行,然后再将其添加到表中

来自分类Dev

如何将一行一行地添加到python中的numpy 2d数组中?

Related 相关文章

  1. 1

    如何将一行添加到另一行

  2. 2

    如何将文本从一行添加到另一行的末尾?

  3. 3

    如何将数据添加到dataGridView1的最后一行/最后一列?

  4. 4

    循环遍历数据帧的每一行,并根据条件将元素添加到数据帧

  5. 5

    在用查询中的 MPmedia 项目填充之前,如何将数据添加到表的第一行?

  6. 6

    如何从其余数据集中选择一行并将其添加到python中的初始矩阵中?

  7. 7

    如何将数据帧附加到另一个数据帧的每一行?

  8. 8

    Python - Pandas - 导入 Excel 文件,遍历每一行,添加新值,并添加到数据帧

  9. 9

    如何将删除操作添加到具有值id的每一行

  10. 10

    如何将类添加到折线图中的每一行

  11. 11

    如何将数组添加到二维数组中的每一行?

  12. 12

    如何将重复的行添加到Pandas DF?

  13. 13

    如何使用熊猫将值添加到数据框的每一行?

  14. 14

    如何将数据行添加到特定列?

  15. 15

    如何将行添加到数据框?

  16. 16

    如何将按数据帧分组的另一行减去另一行?

  17. 17

    如何将数据框变量名移动到第一行并将新变量名添加到列表中的多个数据框?

  18. 18

    如何将数据帧1的每一行与数据帧2的每一行进行比较?

  19. 19

    如何将数据帧1的每一行与数据帧2的每一行进行比较?

  20. 20

    如何将JLabel添加到JPanel中的每个第一行,第一个col

  21. 21

    Pandas 尝试将一行附加到数据帧,但不断覆盖现有行

  22. 22

    如何将一个文件中的一行一行添加到另一个文件中

  23. 23

    如何将约束添加到sql表,以使表恰好有一行

  24. 24

    蟒蛇| 如何将字符串添加到 csv 文件中的每一行?

  25. 25

    根据上一行中的日期将行添加到数据框中

  26. 26

    根据R中前一行的条件将行添加到数据框

  27. 27

    如何将复选框动态添加到每一行,然后再将其添加到表中

  28. 28

    如何将复选框动态添加到每一行,然后再将其添加到表中

  29. 29

    如何将一行一行地添加到python中的numpy 2d数组中?

热门标签

归档