熊猫数据框创建新列并填充来自同一df的计算值

乔纳斯:

这是我的df的简化示例:

ds = pd.DataFrame(np.abs(randn(3, 4)), index=[1,2,3], columns=['A','B','C','D'])
ds
      A         B         C         D
1  1.099679  0.042043  0.083903  0.410128
2  0.268205  0.718933  1.459374  0.758887
3  0.680566  0.538655  0.038236  1.169403

我想按行对列中的数据求和:

ds['sum']=ds.sum(axis=1)
ds
      A         B         C         D       sum
1  0.095389  0.556978  1.646888  1.959295  4.258550
2  1.076190  2.668270  0.825116  1.477040  6.046616
3  0.245034  1.066285  0.967124  0.791606  3.070049

现在,我的问题来了!我想创建4个新列,并从每一行的总和中计算百分比值。因此,第一个新列中的第一个值应该是(0.095389 / 4.258550),第二个新列中的第一个值(0.556978 / 4.258550)...依此类推...请帮助

乔里斯:

您可以像这样手动轻松地为每个列执行此操作:

df['A_perc'] = df['A']/df['sum']

如果要一步一步对所有列进行此操作,则可以使用div方法(http://pandas.pydata.org/pandas-docs/stable/basics.html#matching-broadcasting-behavior):

ds.div(ds['sum'], axis=0)

如果要一步将其添加到同一数据框中,请执行以下操作:

>>> ds.join(ds.div(ds['sum'], axis=0), rsuffix='_perc')
          A         B         C         D       sum    A_perc    B_perc  \
1  0.151722  0.935917  1.033526  0.941962  3.063127  0.049532  0.305543   
2  0.033761  1.087302  1.110695  1.401260  3.633017  0.009293  0.299283   
3  0.761368  0.484268  0.026837  1.276130  2.548603  0.298739  0.190013   

     C_perc    D_perc  sum_perc  
1  0.337409  0.307517         1  
2  0.305722  0.385701         1  
3  0.010530  0.500718         1  

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从两个数据框创建新的数据框。一个df包含列索引,另一个df包含值

如何从熊猫数据框的列值创建新行

熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

熊猫:在数据框中创建两个新列,并使用从现有列中计算出的值

用来自同一列的平均值填充Pyspark数据框列的空值

计算熊猫数据框中的新列

根据来自另一个数据框的行范围添加/填充熊猫列

从熊猫数据框中的唯一行值创建新列

根据来自另一个数据框的查找值创建一个熊猫列

基于来自另一个数据框熊猫的匹配值的新列

根据同一熊猫数据框中其他列的值创建包含布尔值或NaN的新列

填充字典值作为来自熊猫数据框的值的总和

使用熊猫操作数据框,创建新列,并根据在数据框中查找现有数据的值填充它们

熊猫-创建新列,该列的值取自同一数据框中的其他行

如果值在同一列和同一数据框中的窗口范围内,则创建新列

大熊猫:从现有的列值创建一个新的数据框

大熊猫:使用来自单独数据框中一个单元格的值填充数据框列中的所有行

创建新列并放入条件值熊猫数据框

来自现有DF的元信息的新熊猫数据框

遍历熊猫数据框并创建新的列值

如何使用熊猫在数据框的同一行中用值填充NaN

在熊猫数据框中创建新列

根据熊猫中另一列上的值在数据框中创建一个新列

如何重新计算列并将新值存储在同一数据框中?

根据一列中的条件创建一个新的熊猫列,并从同一数据框中的多列中分配值

从熊猫值计数创建新的数据框

基于熊猫数据框中的两列值创建一个新的数据框

数据框获取 df.style 后,熊猫创建一个新列

在新列中创建具有唯一值的同一数据框的多个副本