大熊猫中的字符串到浮动转换错误[无法将字符串转换为浮动:'dvic']

时间:2021-05-03 03:45:37

标签: python pandas string dataframe series

enter image description here

我正在尝试从标题列中提取年份并转换为“int”或“float”。转换时显示错误(标记为黄色)

链接 -> https://colab.research.google.com/drive/1nGCdvCLUQYqU8zsEF3PaGrng-ay3IkIu?usp=sharing

2 个答案:

答案 0 :(得分:1)

考虑到 title 列仅由年份形式的数字组成。

如果将名为 year 的新列添加到 df

df['year'] = df.title.str.extract(r"\((\d+)\)")

如果您想要 year 作为列表/系列

year = df.title.str.extract(r'(\d+)')

输出 在示例的最后一行添加了一个虚拟标题

    movieId title   genres  year
0   1   Toy Story (1995)    Adventure|Animation|Children|Comedy|Fantasy 1995
1   2   Jumanji (1995)  Adventure|Children|Fantasy  1995
2   3   Grumpier Old Men (1995) Comedy|Romance  1995
3   4   Waiting to Exhale (1995)    Comedy|Drama|Romance    1995
4   5   Father of the Bride Part II (1995)  Comedy  1995
5   6   Dummy 3 Title (1995)    Comedy  1995

答案 1 :(得分:0)

您可以拆分最后一个空格,然后去掉括号

df[['title', 'year']] = df['title'].str.rsplit(' ', 1, expand=True)
df['year'] = df['year'].str.strip('()').astype(int)
print(df)

       title  year
0  Toy Story  1995
1    Jumanji  1995