当条件表达式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
我该怎么办?
答案 0 :(得分:0)
一种选择是使用
df.loc[(df['c1'] == '2017-04-01'), ['column_you_need_to_change']] = 1.
在上述情况下,以上一行查找c1列的所有行均以“ 2017-04-01”作为值,并将所需列的值更改为数字。
希望有帮助。