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