DataFrame:查找指定的行,并将数值赋给同一行的另一列

DataFrame: To find a specified row and assign a numeric value to another column in the same row

当条件表达式c1 = 2017-04-01成立时,我们要用数字300.0代替c3。

因此,300.0 被替换为 r3 和 c3。 但是,条件表达式不是 r3 columns: c1 = 2017-04-01 是要整理的r3,所以就变成了line.

import pandas as pd
df=pd.DataFrame(
  [["2017-02-01",10.,100.],
  ["2017-03-01",20.,'Nan'],
  ["2017-04-01",30.,'Nan'],
  ["2017-05-01",40.,'Nan']],
  index=['r1','r2','r3','r4'],
  columns=['c1','c2','c3']
  )
df

###########################
     c1           c2    c3
r1  2017-02-01  10.0    100
r2  2017-03-01  20.0    Nan
r3  2017-04-01  30.0    Nan
r4  2017-05-01  40.0    Nan

我该怎么办?

一种选择是使用

df.loc[(df['c1'] == '2017-04-01'), ['column_you_need_to_change']] = 1.

以上行查找其 c1 列的值为“2017-04-01”的所有行,并将所需列的值更改为数字,在上述情况下为 1。

希望对您有所帮助。