【问题标题】:finding values of different decimal places with Pandas dataframe使用 Pandas 数据框查找不同小数位的值
【发布时间】:2019-09-30 15:36:58
【问题描述】:

我正在处理表格的 json 网络数据,以使其看起来与原始版本的表示完全相同。 它对每一行都有一些 id 值,所以我试图使用这些 id 作为“键”来恢复表中行的原始顺序。

但有趣的是,它在相同的数字上具有不同的小数位,例如 45.097 和 450.97。

用不同的小数位匹配相同数字的最有效方法是什么?如果我将它(现在它是 pandas 数据框类型)转换为 Numpy 数组会更好吗? 提前谢谢你。

【问题讨论】:

  • 你能提供一个简短的例子吗?请参阅有关编写minimal reproducible example 的页面。
  • 感谢您的评论@ASGM;例如1097648982760表示为1097648.98,所以我想只提取数字的前4~5位但是有0.15这样的数字,让事情变得复杂。
  • 完全正确 - 这些复杂性将决定什么使答案好或不好。除非您决定希望代码如何处理不同的示例(例如 0.15),否则我们无法提供真正的帮助。

标签: python json pandas numpy


【解决方案1】:

Pandas 有 float64 dtype。

如果您不确定自己拥有什么或者您的数字是否保存为字符串,您可以随时“float64”您的列。

df['column']=df['column'].astype('float64')

要检查您刚刚输入的内容:df.info()

如果您在转换数字时遇到问题,请尝试以下操作:

pd.to_numeric(df['column'], errors='coerce')

这将忽略转换错误。

如果我将它(现在它是 pandas 数据框类型)转换为 Numpy 数组会更好吗?提前谢谢你。

虽然 Pandas 是为在 Numpy 上工作而构建的,但您无需抓取 Numpy 数组并对其进行转换,而是使用 pandas astype 转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-13
    • 2018-12-20
    • 2017-01-31
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多