我有一个示例数据框,我希望删除所有单词并保留值。
Column1 Column2 Column3 Column4 Column5
5FQ 1.047 S$55.3 UG44.2 as of 02/Jun/2016 S$8.2 mm
是否可以删掉单词并保留所有数字? IE:获得以下预期结果:
Column1 Column2 Column3 Column4 Column5
5 1.047 55.3 44.2 8.2
答案 0 :(得分:3)
一种方法是:
In [212]: df
Out[212]:
Column1 Column2 Column3 Column4 Column5
0 5FQ 1.047 S$55.3 UG44.2 as of 02/Jun/2016 S$8.2 mm
In [213]: df.apply(lambda x: x.astype(str).str.extract(r'(\d+\.?\d*)', expand=True).astype(np.float))
Out[213]:
Column1 Column2 Column3 Column4 Column5
0 5.0 1.047 55.3 44.2 8.2
答案 1 :(得分:3)
您可以使用pd.Series.extract
:
In [28]: for c in df:
df[c] = df[c].str.extract('(\d+\.?\d*)', expand=False)
....:
In [29]: df
Out[29]:
Column1 Column2 Column3 Column4 Column5
0 5 1.047 55.3 44.2 8.2
请注意,这有点脆弱,因为Column4
它有效,因为日期出现在数量之后。但是,你的问题并未指明任何更精确的内容。