截断列的最后 4 个字符

问题描述

我想:

  1. 从 df 中提取一个只包含电影(电影内容)的电影数据帧。

  2. 在电影中创建一个新变量 duree,其中包含截断最后 4 个字符的持续时间变量的值。

  3. 将变量duration的类型改为int。

1. movies = df[df['type'] == 'Movie']
2. movies['duration'] = movies['duration'].astype(str).str[:-4]
3. movies['duration'].astype(int)

我无法创建我的新变量 duree,其中包含截断了最后 4 个字符的持续时间变量的值

解决方法

这是一个警告,因为 movies 是原始 df 的一部分,因此在 Pandas 中应该修改哪些 DataFrame 存在一些歧义,因为 movies 直接派生自 {{1 }} - 这称为 df。目前,按照您构建代码的方式,pandas 将修改 chained assignment DataFrame 而不修改 movies,但这可能会导致一些更复杂操作的意外行为。

出于您的目的,您可以通过将电影设置为副本来避免链接分配,这样它就不会连接到 df:df

如果您对有关链式赋值的更深入讨论以及出现此警告的原因感兴趣,已经有一个很棒的 stackoverflow 答案 here