python - 从列中提取部分值

标签 python pandas dataframe

我有一个数据框 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/

相关文章:

python - 如何使用泛型类型的构造函数

python - 在pyqtgraph中设置背景颜色的问题

python - 如何在 pyspark 的高基数分类列中有效地对低频计数级别进行分组?

python - 高效加入 Python dataframe 时间序列

python - 使用 Pandas Python 进行透视以获取 bool 值

python - 包括基于一组分组数据的缺失值组合

python - Pandaic 方法检查数据框是否有任何行

python - Pandas 数据帧 : Operation per batch of rows

sql-server - 在没有 hadoop 的情况下,从 SQL Server 中的表中将 1 TB 数据提取到 Parquet 文件的更快方法是什么

python - 如何从数据框列中提取与列表的精确匹配?