按条件转换行数

时间:2019-09-08 12:38:15

标签: python pandas dataframe

我尝试按条件转换行数:

df.loc[df['file'] ==  '0.mp4','xmin'] = df['xmin']/4
df.loc[df['file'] ==  '2.mp4','xmin'] = df['xmin']/4
df.loc[df['file'] ==  '8.mp4','xmin'] = df['xmin']/4
df.loc[df['file'] ==  '10.mp4','xmin'] = df['xmin']/4

是否可以在一行中执行此操作?

这吗?

df.loc[df['file'] ==  '0.mp4','xmin'] = df['xmin']/4
df.loc[df['file'] ==  '2.mp4','xmin'] = df['xmin']/4
df.loc[df['file'] ==  '0.mp4','ymin'] = df['ymin']/4
df.loc[df['file'] ==  '2.mp4','ymin'] = df['ymin']/4

2 个答案:

答案 0 :(得分:4)

您可以使用pandas.Series.isin

df.loc[df['file'].isin(['0.mp4', '2.mp4', '8.mp4', '10.mp4']), 'xmin'] = df['xmin'] / 4

答案 1 :(得分:1)

Series.isin用于list的支票隶属关系,也可以将= df['xmin']/4简化为/= 4

df.loc[df['file'].isin(['0.mp4','2.mp4','8.mp4','10.mp4']),'xmin'] /= 4