在Python DataFrame中将字符串转换为float64 [重复]

Posted

技术标签:

【中文标题】在Python DataFrame中将字符串转换为float64 [重复]【英文标题】:Convert string to float64 in Python DataFrame [duplicate] 【发布时间】:2021-04-30 07:37:29 【问题描述】:

我有一个数据框 (df),如下所示

我正在尝试将 dataframe 中的值转换为 int 和 float64 类型。

df['poiid'] = df['poiid'].astype(int)
df['lng'] = df['lng'].astype('float64')
df['lat'] = df['lat'].astype('float64')

上面的代码不适用于float64,它在lnglat属性的逗号后只需要6个十进制值。 (请参阅下面的输出)

输出

我的期望是逗号后 10 位数

我的期望输出:

8904  -94.6074986458, 39.0523183095

...

【问题讨论】:

您确定这不仅仅是显示精度的限制,而数据框实际上包含您的期望吗? 你看到的只是默认的带6位小数的字符串表示,这个数字可能有更多的小数位 试试pd.options.display.float_format = ':.10f'.format 【参考方案1】:

您看到的只是带有 6 个小数位的默认字符串表示。您可以使用

设置您自己的display format option
pd.options.display.float_format = ':.10f'.format

显示 10 个地点。 或者,如果您查看df.loc[1,'lng'] 的结果,您可以确认该号码。

要临时设置选项,您可以使用option context:

with pd.option_context('display.float_format', ':.10f'.format):
    print(df)

【讨论】:

以上是关于在Python DataFrame中将字符串转换为float64 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在python,dataframe中将数据转换为嵌套字典

在python中将对象数据类型转换为字符串问题

在python中将Dataframe列转换为时间格式

在 Python Pandas DataFrame 中将 timedelta64[ns] 列转换为秒

如何在 Scala(Spark 2.0)中将带有字符串的 DataFrame 转换为带有 Vectors 的 DataFrame

在 for 循环中将 Python Dask 系列转换为列表或 Dask DataFrame