Python 如何修剪列中的字符串和字符串列表

Python 如何修剪列中的字符串和字符串列表,python,pandas,Python,Pandas,我有一个df,看起来像这样: 0 ['AU06_threshold_h', 'AU12_threshold_h'] 1 AU14_threshold_h 2 AU26_threshold_h 3 NaN 4

我有一个df,看起来像这样:

0              ['AU06_threshold_h', 'AU12_threshold_h']  
1                                     AU14_threshold_h   
2                                     AU26_threshold_h   
3                                                  NaN   
4                                     AU01_threshold_h   
0              [6, 12]  
1                   14 
2                   26   
3                  NaN   
4                    1   
我想修剪每个字符串中的文本,如果第一个字符是0,则修剪零。应该是这样的:

0              ['AU06_threshold_h', 'AU12_threshold_h']  
1                                     AU14_threshold_h   
2                                     AU26_threshold_h   
3                                                  NaN   
4                                     AU01_threshold_h   
0              [6, 12]  
1                   14 
2                   26   
3                  NaN   
4                    1   

请告知。谢谢大家!

使用
分解

df.col.explode().str.extract('(\d+)')[0]\
      .groupby(level=0).agg(lambda s: list(s) if len(s)>1 else s.iat[0])

我只能说这不是一个好的设计。避免将列表和数字完全放在同一列中。

使用自定义函数(基于正则表达式替换):


所以你只想要数字?是的,只要数字谢谢@rafaelc。这通常是有效的,但是当项目是一个列表时,我只得到第一个值。例如,第0行返回06,而不是[06,12]。应处理
apply
。查看函数:
list,如果len>1
so应该返回列表而不是数字。你确定你有正确的代码吗?p) 谢谢@RomanPerekhrest。这通常是有效的,但当值是一个列表时,它将所有值一起返回为1浮点。例如,第0行返回为612.0,而不是[6,12]。