Python 我只想在列中保留一个值
我有一列的值如下:“(42837666.84 ms)11:53:57.667” 我只想在单元格中保留ms旁边的数字:42837666.84,并删除时间戳和ms以及()Python 我只想在列中保留一个值,python,dataframe,Python,Dataframe,我有一列的值如下:“(42837666.84 ms)11:53:57.667” 我只想在单元格中保留ms旁边的数字:42837666.84,并删除时间戳和ms以及() 我如何才能在整个专栏中做到这一点,因为它是随机的?您可以使用split,示例如下: import pandas as pd d = {'col': ["(42837666.84 ms) 11:53:57.667", "(42837666.84 ms) 11:53:57.667"]} df = pd.DataFrame(data
我如何才能在整个专栏中做到这一点,因为它是随机的?您可以使用
split
,示例如下:
import pandas as pd
d = {'col': ["(42837666.84 ms) 11:53:57.667", "(42837666.84 ms) 11:53:57.667"]}
df = pd.DataFrame(data=d)
print(df)
col
0 (42837666.84 ms) 11:53:57.667
1 (42837666.84 ms) 11:53:57.667
#here you split twice, once on 'ms' and retrun 0
df['col'] = df['col'].str.split('ms').str[0]
#here you split on '(' and return 1
df['col'] = df['col'].str.split('(').str[1]
print(df)
col
0 42837666.84
1 42837666.84
您可以尝试组合使用
分区
和条带
:
value = "(42837666.84 ms) 11:53:57.667"
value = value.partition('ms')[0]
value = value.strip('()')
print(value)
输出:
42837666.84
是一种简化的分区
——用于剪切不需要的任何内容拆分
将从字符串的开头和结尾删除strip
分隔符
您可以尝试为分区使用不同于
'ms'
的参数,这最适合您。当我尝试使用该参数时,我得到的错误是“AttributeError:'list'对象没有属性'partition'”,而不是整个包含值的列@HebaRpartition
是string
的方法,因此它不能与list一起使用。它给了我一个错误:AttributeError:“DataFrame”对象没有属性“col”,因为您需要将“col”更改为列的实际名称!当然,我在第一部分中这样做了,但是当我在df.col.str.split('ms').str[0]部分中更改它时,它给了我一个无效的语法,这就是为什么我留下了第二个语法。可能是因为您的列名中有空格,请将代码更改为df['column name'].strI不理解列名是HW Timestamp您的意思是代码行应该是:df['HW Timestamp'].str=df.HW Timestamp.str.split('ms')。str[0]?