首页 > 解决方案 > 根据其他列值从数据框列中的列表中删除最后一个元素

问题描述

我有一个这样的数据框df:

 col1  col2 col3               col4                col5      
  Type Key Date first found    Date last found     Images
0  A     1 2020-08-11 07:28:18 2020-08-11 07:28:18 ['image1', 'image2, 'image3']
1  A     2 2020-08-11 07:28:18 2020-08-12 07:28:18 ['image1', 'image2, 'image3']
2  B     3 2020-08-11 07:28:18 2020-08-13 07:28:18 ['image1', 'image2, 'image3']
3  B     4 2020-08-11 07:28:18 2020-08-13 07:28:18 ['image1', 'image2, 'image3']
4  C     5 2020-08-11 07:28:18 2020-08-13 07:28:18 ['image1', 'image2, 'image3']

如果类型为“A”,我想做的是删除最后一个元素“image3”。预期结果:

 col1  col2 col3               col4                col5      
  Type Key Date first found    Date last found     Images
0  A     1 2020-08-11 07:28:18 2020-08-11 07:28:18 ['image1', 'image2]
1  A     2 2020-08-11 07:28:18 2020-08-12 07:28:18 ['image1', 'image2]
2  B     3 2020-08-11 07:28:18 2020-08-13 07:28:18 ['image1', 'image2, 'image3']
3  B     4 2020-08-11 07:28:18 2020-08-13 07:28:18 ['image1', 'image2, 'image3']
4  C     5 2020-08-11 07:28:18 2020-08-13 07:28:18 ['image1', 'image2, 'image3']

我试过没有成功:

del df.loc[df["Type"] == 'A']['Images'][:-1]

df.loc[df["Type"] == 'A']['Images'] = df.loc[df["Type"] == 'A']['Images'].pop()

标签: python-3.xpandaslistdataframe

解决方案


尝试使用str访问器:

df.loc[df["Type"] == 'A', 'Images'] = df['Images'].str[:-1]

推荐阅读