Pandas 从数据帧列的字符串中提取数值,并用该数值替换该字符串

Pandas 从数据帧列的字符串中提取数值,并用该数值替换该字符串,pandas,python-3.6,Pandas,Python 3.6,假设列“A”包含前3行的值:4.5 mg、5.8 mg、6.3 mg 我想要的是:提取后应该是:4.5,5.8,6.3 有什么帮助吗? 此外,我不知道如何在stackoverflow中显示我的数据帧。因此,对于问题的主体结构,我感到非常抱歉。与“铸造到浮动”一起使用: df = pd.DataFrame({'A':'4.5 mg, 5.8 mg, 6.3 mg'.split(', ')}) df['new'] = df['A'].str.extract(r'(\d\.\d)+').astype

假设列“A”包含前3行的值:4.5 mg、5.8 mg、6.3 mg 我想要的是:提取后应该是:4.5,5.8,6.3

有什么帮助吗? 此外,我不知道如何在stackoverflow中显示我的数据帧。因此,对于问题的主体结构,我感到非常抱歉。

与“铸造到浮动”一起使用:

df = pd.DataFrame({'A':'4.5 mg, 5.8 mg, 6.3 mg'.split(', ')})

df['new'] = df['A'].str.extract(r'(\d\.\d)+').astype(float)
如果可能,某些整数值:

df['new'] = df['A'].str.extract(r"(\d*\.?\d+|\d+)").astype(float)
如果可能,请使用“按第一个空格拆分”并与str一起使用,以索引第一个值:

df['val'] = df['A'].str.split().str[0].astype(float)
与铸件一起使用以浮动:

df = pd.DataFrame({'A':'4.5 mg, 5.8 mg, 6.3 mg'.split(', ')})

df['new'] = df['A'].str.extract(r'(\d\.\d)+').astype(float)
如果可能,某些整数值:

df['new'] = df['A'].str.extract(r"(\d*\.?\d+|\d+)").astype(float)
如果可能,请使用“按第一个空格拆分”并与str一起使用,以索引第一个值:

df['val'] = df['A'].str.split().str[0].astype(float)

还有一种可能性。如果数值和单位之间有一个空格,则可以使用

df['val'] = df['A'].apply(lambda x: x.split(' ')[0]).astype(float)

还有一种可能性。如果数值和单位之间有一个空格,则可以使用

df['val'] = df['A'].apply(lambda x: x.split(' ')[0]).astype(float)