【问题标题】:Get results with all values after decimal in pandas series获取熊猫系列中小数点后所有值的结果
【发布时间】:2022-01-11 01:47:32
【问题描述】:

由于采样率高,我有一个数据框,其中时间值类似于 8.000024。当我从 DF 中提取这些值时,该系列将时间值显示为 8.0,我希望获得完整的值。我该怎么做呢 ?我的代码如下:

x = str(input('Enter file name with extension: ')) 
df = pd.read_csv(x, delimiter=";", dtype=float, na_values=["-∞", "∞"],)  # loads the csv files

time = df['Time'].astype('float')
time.round(6)
print(time)

【问题讨论】:

  • 所以看起来从 ASCII 文件到 CSV 的转换是问题所在。我可以在 ASCII 文件中看到所有十进制值,但在 CSV 文件中看不到。我在记事本中打开它并保存为 CSV 文件。有谁知道如何解决这个问题?

标签: python pandas series


【解决方案1】:

我运行了你的代码,输出是

import pandas as pd

df = pd.DataFrame({
    "Time": [
        6.001234154,
        7.000124131,
        8.000024465,
        9.00000112234,
        10.00000023254,
        11.000000012410149,
    ]
})

time = df['Time'].astype('float')
time.round(6)
print(time)

确保源文件中的数据正确无误。 不能说更多,因为您的示例不可重现。

如果您仍有问题,请从您的源文件中提供一个 sn-p/export。

0     6.001234
1     7.000124
2     8.000024
3     9.000001
4    10.000000
5    11.000000
Name: Time, dtype: float64

编辑

sourcefile 已关联。 文件的第一行是 8.00E+00;3.09E-03;1.97E-03;3.41E-03;3.66E-03;3.88E-03;2.44E-03

因此,将您的 ascii 重新保存为 csv 必须将数字四舍五入为 2 位有效数字。

【讨论】:

  • 我的源文件是一个 ascii,我将其重新保存为 CSV 并删除了几行。这可能是一个原因吗?
  • 文件链接为here!:
  • 编辑了我的答案
  • 你知道如何将这个四舍五入增加到 6 位吗?
  • 你应该单独询问那个步骤/检查你在那里做什么
【解决方案2】:

原来我可以使用 pd.read_csv 直接导入 .asd 文件

x = 'filename'
df = pd.read_csv(x, skiprows=12, delimiter=";", dtype=float, na_values=["-∞", "∞"])

【讨论】:

    【解决方案3】:

    也许列太紧而无法显示所有值,如果是这种情况,这将起作用:options.display.max_colwidth。它用于在默认表示中查看更多内容。

    use pd.options.display.max_colwidth = 100
    

    【讨论】:

    • Downvote 不是来自我,但此解决方案不起作用。
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 2020-03-02
    • 2017-12-23
    • 1970-01-01
    相关资源
    最近更新 更多