我有一个数据框 df,其中有一个名为“结果”的列。该列的值类似于 -
Results
Movie passed 1 of 3 tests
Movie passed 2 of 3 tests
Movie passed 3 of 3 tests
<empty string>
Movie passed 1 of 3 tests
我想创建一个新列来提取电影通过的测试数量。在上述情况下,名为 new_results 的新列应具有如下值:
new_results
1
2
3
0
1
请注意,它会在空值的情况下放置“0”。我如何使用 Pandas 完成此任务?
最佳答案
可以使用extract()
方法,截取passed
后的数字,如果没有匹配到,默认返回nan
,但是您使用 fillna()
方法将 nan
替换为 0
:
df.Results.str.extract('passed ([0-9]+)').fillna(0)
#0 1
#1 2
#2 3
#3 0
#4 1
#Name: Results, dtype: object
关于python - 从列中提取部分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40836670/