Python 如果列表中有其他列数据,则更改一列数据
我在这样的数据框中有一些数据:Python 如果列表中有其他列数据,则更改一列数据,python,pandas,Python,Pandas,我在这样的数据框中有一些数据: COLUMNS Point,x,y,z,Description,Layer,Date 1,224939.203,1243008.651,1326.774,F,C-GRAD-FILL,09/22/18 07:24:34, 1,225994.242,1243021.426,1301.772,BS,C-GRAD-FILL,09/24/18 08:24:18, 451,225530.332,1243016.186,1316.173,GRD,C-TOE,10/02/18 1
COLUMNS Point,x,y,z,Description,Layer,Date
1,224939.203,1243008.651,1326.774,F,C-GRAD-FILL,09/22/18 07:24:34,
1,225994.242,1243021.426,1301.772,BS,C-GRAD-FILL,09/24/18 08:24:18,
451,225530.332,1243016.186,1316.173,GRD,C-TOE,10/02/18 11:49:13,
452,225522.429,1242996.017,1319.168,GRD,C-TOE KEY,10/02/18 11:49:46,
我想尝试对照字符串列表检查它是否匹配,然后更改另一个columns值
myList = ["BS", "C"]
if df['Description'].isin(myList)) == True:
df['Layer']="INLIST"
df['Date']="1/1/2018'
使用具有以下功能的遮罩:
或者,使用:
注意:您可能应该将日期存储为
datetime
对象,例如pd.Timestamp('2018-01-01')
,或者通过转换序列。通常不需要Python级别的循环。从jpp借用掩码
,并使用列表来分配值
df.loc[mask,['Layer','Date']]=['INLIST','1/1/2018']
可以请你把DataFrm放在帖子里,为了得到答案,这个看起来像逗号分隔的数据看起来像CSV数据集,但是也有条件,如<代码> [BS','C'] /<代码> <代码>描述< /C> >,所以你也需要考虑。@ JPG-面具从JPP:-)
mask = df['Description'].isin(['BS', 'C'])
df['Layer'].mask(mask, 'INLIST', inplace=True)
df['Date'].mask(mask, '1/1/2018', inplace=True)
df.loc[mask,['Layer','Date']]=['INLIST','1/1/2018']