python - 在 Pandas 系列中拆分字符串和整数 - Python

标签 python pandas string split series

我在 Pandas 数据框中有一列,“电影标题”和“年份”(例如“玩具总动员 (1995)”)都在同一个字符串中。 我必须将它们分成 2 个不同的列,当然年份必须是整数。 我尝试使用这种方法(如下),但年份仍然是“对象”类型,因为它有括号。 此外,它不适用于一部电影(还有一个标题)...

split_movie = movies["Movie"].str.rsplit(" ", n = 1, expand=True)
movies["Movie Title"] = split_movie[0]
movies["Movie Year"] = split_movie[1]

我不知道我是否可以使用 pd.year 方法,或者我是否必须通过创建列表来拆分 Python 中的字符串...

感谢您的帮助!

最佳答案

使用str.extractall:

>>> df.join(df['Movie'].str.extractall(r'\s*(.*\S)\s*\((\d{4})\)') \
                       .rename(columns={0: 'Movie Title', 1: 'Movie Year'}) \
                       .reset_index(drop=True))

              Movie Movie Title Movie Year
0  Toy Story (1995)   Toy Story       1995

@Bill 增强了正则表达式。

关于python - 在 Pandas 系列中拆分字符串和整数 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68696327/

相关文章:

python - 将 'now' 时间戳列添加到 pandas df

python - 按 MultiIndex 级别或子级别切片 pandas DataFrame

python - 提取双引号之间的字符串

android - 把 "@"开头的字符串放到android资源中

python - 如何在调用函数后存储输出并在下次运行中使用它

python - 使用dict的递归阶乘导致RecursionError

html - 将自定义标题添加到 Pandas 中的数据框并将其转换为 HTML

c# - 字母顺序不比较从左到右?

python - 在现有 DataFrame 中设置 DateTimeIndex

python - 是否可以测试对象属性是否使用描述符?