简体   繁体   English

Python Pandas - 开始更换

[英]Python Pandas - Starts with and replace

I have a column that contains numbers and strings.我有一列包含数字和字符串。 I want to find the cell that starts with '0' and replace it with Unknown我想找到以“0”开头的单元格并将其替换为未知

column1
12 - abcsffj
40 - dhjsadjal
0 - dahdalk
70 - dkalskda

I tried using.loc and contains but it also changed the cells that had 70 and 40 values.我尝试了 using.loc 和 contains 但它也更改了具有 70 和 40 值的单元格。

df.loc[df['column1'].str.contains('0'), 'column1'] = 'Unknown'

Expected output预期 output

column1
12 - abcsffj
40 - dhjsadjal
Unknown
70 - dkalskda

You need to use str.startswith rather than str.contains because contains will return True regardless the position of 0 in the values, whereas startswith will return True only if the values start with 0您需要使用str.startswith而不是str.contains因为contains将返回True无论值中的 position 为0 ,而仅当值以0开头时, startswith才会返回True

>>> df.loc[df['column1'].str.startswith('0'), 'column1'] = 'Unknown'

          column1
0    12 - abcsffj
1  40 - dhjsadjal
2         Unknown
3   70 - dkalskda

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM