给定另一列的值替换熊猫数据框中的值

时间:2020-02-13 22:46:27

标签: python pandas dataframe replace

鉴于此数据框,我正在尝试查找所有以NA开头的单元格,并替换

import pandas as pd
df = pd.DataFrame({'A': ('a', 'b', 'c', 'd', 'e', 'NA_1', 'NA_2'), 'Val': (1, 2, 3, 4, 5, 6, 7)})
      A  Val
0     a    1
1     b    2
2     c    3
3     d    4
4     e    5
5  NA_1    6
6  NA_2    7

我正在尝试得到这样的东西:

      A  Val
0     a    1
1     b    2
2     c    3
3     d    4
4     e    5
5  NA_1    -100
6  NA_2    -100

这是我到目前为止所拥有的:

s = df.replace('NA_1', 100).drop('Val', 1).ffill(1).iloc[:, -1]
print(s)
df.Val = np.where(s.isnull(), df.Val, s)

1 个答案:

答案 0 :(得分:1)

您可以像这样使用lambda函数:

df['Val'] = df.apply(lambda x: -100 if 'NA' in x['A'] else x['Val'], axis=1)