如何检查字符串中是否包含某些单词?

时间:2020-05-16 22:10:00

标签: python string pandas dataframe

我有一个系列如下:

0          1.5 
1      39 mins 
2          2.5 
3            3 

我想将39分钟转换为0.39。以下是我的代码:

df['content_duration'].apply(lambda x: x.str.replace('mins', '').astype(int) * 1/100 if x in 'mins' else x)

我没有收到错误,但仍然无法转换。我怎样才能做到这一点? 我的预期输出将是:

0          1.5 
1         0.39
2          2.5 
3            3 

3 个答案:

答案 0 :(得分:2)

这对我有用:

# dataset for read_clipboard()
'''
content_duration
1.5 
39 mins 
2.5 
3 
'''

df = pd.read_clipboard('\t')

df['content_duration'] = df['content_duration'].apply(lambda x: int(x.replace('mins', '').strip()) * 1/100 if 'mins' in x else x)


print(df)

输出:

  content_duration
0             1.5 
1             0.39
2             2.5 
3                3

答案 1 :(得分:1)

您可以使用.locstr.extract

df.loc[df[0].str.contains('mins'),0]  = df[0].str.extract('(\d+)').astype(int)[0] / 100

print(df)

      0
0   1.5
1  0.39
2   2.5
3     3

答案 2 :(得分:1)

替代略长;

df2=df[df['content_duration'].str.contains('mins', na=False)]#mask mins and extract new df
df2['content_duration']=(df2['content_duration'].str.strip('mins').astype(int)/100).astype(str)#Transform mins
df.update(df2)#Updatedf

df