我有一个数据框列,其中包含不同类型的字符串,如下所示:
year
0 1990
1 1998.0
2 2006-02-12
我只想从它们全部中提取年份并将它们转换为int
或float
。
year
0 1990
1 1998
2 2006
答案 0 :(得分:1)
假设只有这些模式,则可以使用str.extract:
import pandas as pd
df = pd.DataFrame(data=['1990','1998.0','2006-02-12'], columns=['year'])
result = df.year.str.extract('^(\d{4})')
print(result)
输出
0
0 1990
1 1998
2 2006
模式^(\d{4})
会转换为起始字符串的前4位,因此您基本上是在提取列中每个字符串的前4位。