如何根据条件用同一数据框中的另一个值替换熊猫数据框中的范围内的值

萨姆布兰德

如果范围中的值大于零,我想用另一列中的相应值替换数据框的列范围内的值。

我认为这样的简单替换将起作用:

df = df.loc[:,'A':'D'].replace(1, df['column_with_value_I_want'])

但是,实际上,除了删除column_with_value_I_want完全没有意料之外,我无法判断。我不确定为什么会这样。

这似乎也不起作用:

df[df.loc[:,'A':'D']] > 0 = df['column_with_value_I_want']

它返回错误:SyntaxError: can't assign to comparison

这似乎应该很简单,但是尝试了几种不同的方法却无济于事后,我感到茫然。

我正在使用的数据框如下所示:

df = pd.DataFrame({'A' : [1,0,0,1,0,0],
                   'B' : [1,0,0,1,0,1],
                   'C' : [1,0,0,1,0,1],
                   'D' : [1,0,0,1,0,0],
                   'column_with_value_I_want' : [22.0,15.0,90.0,10.,None,557.0],})
阿米·塔沃里(Ami Tavory)

不知道如何在Pandas本身中做到这一点,但是如果您变得麻木不那么困难。


如果您很幸运地使您的整个DataFrame都是数字形式的,则可以执行以下操作:

import numpy as np

m = df.as_matrix()
>>> pd.DataFrame(
    np.where(np.logical_or(np.isnan(m), m > 0), np.tile(m[:, [4]], 5), m), 
    columns=df.columns)
    A   B   C   D   column_with_value_I_want
0   22  22  22  22  22
1   0   0   0   0   15
2   0   0   0   0   90
3   10  10  10  10  10
4   0   0   0   0   NaN
5   0   557     557     0   557

  • as_matrix将DataFrame转换为numpy array
  • np.wherenumpy的三元条件。
  • np.logical_ornumpy或。
  • np.isnan是检查值是否不是nan
  • np.tile (在这种情况下)将2d单列平铺到矩阵。

不幸的是,如果您的某些列(即使是那些未参与此操作的列)本质上是非数字的,则上述操作将失败。在这种情况下,您可以执行以下操作:

for col in ['A', 'B', 'C', 'D']:
    df[col] = np.where(df[col] > 0, df[col], df.column_with_value_I_want)

只要5个相关的列都是数字,它就会起作用。

这使用了一个循环(在数字Python中是不满意的),但至少它是在列而不是行上使用的。假设您的数据长于宽,那么就可以了。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据另一个数据框中的查找值替换熊猫数据框值?

来自分类Dev

如何根据特定条件用另一个数据框中的值替换数据框中的值?

来自分类Dev

如何根据同一数据框中另一列的值替换数据框中的值?

来自分类Dev

如何根据来自另一个表的检查替换熊猫数据框中的一列中的值

来自分类Dev

根据条件,将数据框的某些值替换为另一个数据框中的值

来自分类Dev

根据R中另一数据框中的条件值来匹配/子集一个数据框

来自分类Dev

根据两个条件,用另一个数据框中的值替换数据框中的NaN

来自分类Dev

Python数据框检查列数据框中的值是否在另一个数据框中报告的值的范围内

来自分类Dev

根据条件将值从一个熊猫数据框替换为另一个

来自分类Dev

根据另一数据行中的条件来松散一个数据框中的值

来自分类Dev

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

来自分类Dev

更改熊猫数据框中的值是另一个数据框中存在同一行

来自分类Dev

熊猫用另一个数据框的值替换一个数据框的值

来自分类Dev

根据另一个列条件用数据框中的另一个列表替换列表

来自分类常见问题

用另一个值替换pandas数据框列中的几个值

来自分类Dev

R-有条件地用另一个数据框中的值替换值

来自分类Dev

从另一个替换熊猫数据框中的值

来自分类Dev

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

来自分类Dev

用熊猫中的另一个数据框替换行值的最简单方法?

来自分类Dev

熊猫:根据另一个数据框中的值在数据框中添加新列

来自分类Dev

从熊猫数据框中另一列的每个唯一值的范围内的列中找到一个固定值

来自分类Dev

如何根据同一数据框其他列中的值过滤熊猫数据框中的结果?

来自分类Dev

从另一个数据框中更新熊猫数据框中的特定值

来自分类Dev

根据另一个数据框python熊猫替换列值-更好的方法?

来自分类Dev

根据条件从另一个数据框中复制列值

来自分类Dev

根据另一个数据框中的日期过滤数据框中的值

来自分类Dev

根据另一个数据框中的匹配ID替换数据框列值

来自分类Dev

根据另一个不同大小的数据框替换数据框中的选定列的值

来自分类Dev

使用条件使用 R 中的另一个数据框替换数据框的值

Related 相关文章

  1. 1

    如何根据另一个数据框中的查找值替换熊猫数据框值?

  2. 2

    如何根据特定条件用另一个数据框中的值替换数据框中的值?

  3. 3

    如何根据同一数据框中另一列的值替换数据框中的值?

  4. 4

    如何根据来自另一个表的检查替换熊猫数据框中的一列中的值

  5. 5

    根据条件,将数据框的某些值替换为另一个数据框中的值

  6. 6

    根据R中另一数据框中的条件值来匹配/子集一个数据框

  7. 7

    根据两个条件,用另一个数据框中的值替换数据框中的NaN

  8. 8

    Python数据框检查列数据框中的值是否在另一个数据框中报告的值的范围内

  9. 9

    根据条件将值从一个熊猫数据框替换为另一个

  10. 10

    根据另一数据行中的条件来松散一个数据框中的值

  11. 11

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

  12. 12

    更改熊猫数据框中的值是另一个数据框中存在同一行

  13. 13

    熊猫用另一个数据框的值替换一个数据框的值

  14. 14

    根据另一个列条件用数据框中的另一个列表替换列表

  15. 15

    用另一个值替换pandas数据框列中的几个值

  16. 16

    R-有条件地用另一个数据框中的值替换值

  17. 17

    从另一个替换熊猫数据框中的值

  18. 18

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

  19. 19

    用熊猫中的另一个数据框替换行值的最简单方法?

  20. 20

    熊猫:根据另一个数据框中的值在数据框中添加新列

  21. 21

    从熊猫数据框中另一列的每个唯一值的范围内的列中找到一个固定值

  22. 22

    如何根据同一数据框其他列中的值过滤熊猫数据框中的结果?

  23. 23

    从另一个数据框中更新熊猫数据框中的特定值

  24. 24

    根据另一个数据框python熊猫替换列值-更好的方法?

  25. 25

    根据条件从另一个数据框中复制列值

  26. 26

    根据另一个数据框中的日期过滤数据框中的值

  27. 27

    根据另一个数据框中的匹配ID替换数据框列值

  28. 28

    根据另一个不同大小的数据框替换数据框中的选定列的值

  29. 29

    使用条件使用 R 中的另一个数据框替换数据框的值

热门标签

归档