从Pandas DataFrame列中删除部分字符串

时间:2014-03-07 02:27:48

标签: python pandas dataframe

我已将一组数据加载到Pandas DataFrame,如下所示。

test['Consultation']
Out[13]: 
0     CONSULTATION      15.00
1     CONSULTATION      10.00
2     CONSULTATION      18.00
3     CONSULTATION       0.00
4     CONSULTATION      18.00

这些值包含在DataFrame'咨询'列中。

知道如何用空格替换'咨询'并将列数据类型转换为int64或浮点数吗?

我的预期输出如下。

test['Consultation']
Out[13]: 
0     15.00
1     10.00
2     18.00
3      0.00
4     18.00

这是为了让我自己使用DataFrame.pivot_table('Consultation',rows='Provider')来计算我的行字段的平均值。

1 个答案:

答案 0 :(得分:0)

为什么你会首先以这种方式读取数据,你不能把它读成两列吗?但无论如何,这可以做到,请注意:

In [35]:

df=pd.DataFrame({'Consultation':['CONSULTATION      15.00',
'CONSULTATION      10.00',
'CONSULTATION      18.00',
'CONSULTATION       0.00',
'CONSULTATION      18.00']})
In [36]:

import re
In [37]:

p=re.compile('[0-9.]+')
In [38]:

df['Cons']=df['Consultation'].apply(lambda x: float(p.findall(x)[0]))
In [39]:

print df
              Consultation  Cons
0  CONSULTATION      15.00    15
1  CONSULTATION      10.00    10
2  CONSULTATION      18.00    18
3  CONSULTATION       0.00     0
4  CONSULTATION      18.00    18

[5 rows x 2 columns]
In [40]:

df.dtypes
Out[40]:
Consultation     object
Cons            float64
dtype: object

在您的情况下,您可以按df['Consultation']

覆盖原始df['Consultation']=df['Consultation'].apply(lambda x: float(p.findall(x)[0]))