DataFrame:查找指定的行并将数字值分配给同一行中的另一列

时间:2019-05-10 14:00:26

标签: python pandas dataframe python-3.6 loc

当条件表达式c1 = 2017-04-01成立时,我们希望将数字300.0替换为c3。

结果,将r3和c3替换为300.0。 但是,条件表达式不是r3 列:c1 = 2017-04-01是要组织的r3,因此成为一行。

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

我该怎么办?

1 个答案:

答案 0 :(得分:0)

一种选择是使用

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

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

希望有帮助。