我已将一组数据加载到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')
来计算我的行字段的平均值。
答案 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]))