+-
我想将Pandas DataFrame中的所有字符串值转换为float,我可以定义一个短函数来执行此操作,但它不是 Pythonic方法.我的DataFrame看起来像这样:
>>> df = pd.DataFrame(np.array([['1', '2', '3'], ['4', '5', '6']]))
>>> df
0 1 2
0 1 2 3
1 4 5 6
>>> df.dtypes
0 object
1 object
2 object
dtype: object
>>> type(df[0][0])
<type 'str'>
我只是想知道是否有一些Pandas DataFrame的内置函数将所有字符串值转换为float.如果你知道Pandas doc上的内置函数,请发布链接.
最佳答案
假设所有值都可以正确转换为float,则可以使用
DataFrame.astype()
函数将完整数据帧的类型转换为float.示例 –
df = df.astype(float)
演示 –
In [5]: df = pd.DataFrame(np.array([['1', '2', '3'], ['4', '5', '6']]))
In [6]: df.astype(float)
Out[6]:
0 1 2
0 1 2 3
1 4 5 6
In [7]: df = df.astype(float)
In [8]: df.dtypes
Out[8]:
0 float64
1 float64
2 float64
dtype: object
.astype()函数还有一个raise_on_error参数(默认为True),您可以将其设置为False以使其忽略错误.在这种情况下,原始值在DataFrame中使用 –
In [10]: df = pd.DataFrame([['1', '2', '3'], ['4', '5', '6'],['blah','bloh','bleh']])
In [11]: df.astype(float,raise_on_error=False)
Out[11]:
0 1 2
0 1 2 3
1 4 5 6
2 blah bloh bleh
要将一个系列/列转换为float,再次假设所有值都可以转换,您可以使用[Series.astype()] [2].示例 –
df['somecol'] = df['somecol'].astype(<type>)
点击查看更多相关文章
转载注明原文:python – pandas如何将所有字符串值转换为float - 乐贴网