Pandas 从数据帧列的字符串中提取数值,并用该数值替换该字符串
假设列“A”包含前3行的值:4.5 mg、5.8 mg、6.3 mg 我想要的是:提取后应该是:4.5,5.8,6.3 有什么帮助吗? 此外,我不知道如何在stackoverflow中显示我的数据帧。因此,对于问题的主体结构,我感到非常抱歉。与“铸造到浮动”一起使用: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
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)