gpt4 book ai didi

python - Pandas 如何将所有字符串值转换为 float

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:37 26 4
gpt4 key购买 nike

我想将 Pandas DataFrame 中的所有 string 值转换为 float,我可以定义一个短函数来执行此操作,但是这不是一种 Pythonic 的方式来做到这一点。我的数据框看起来像这样:

>>> 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 是否有一些内置函数可以将所有 string 值转换为 float。如果您知道 Pandas 文档上的内置函数,请发布链接。

最佳答案

假设所有值都可以正确转换为 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 ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com