pandas 在导入 csv 文件时添加了不存在的**尾随**零

An addition of non-existing **trailing** zeros at importing csv file by pandas

正在导入

给出的 .csv 文件
a
1.4
1.12

导致在第一行添加一个 尾随 零。如何避免?

df = pd.read_csv('minExamp.csv' , dtype = str)

这只是您 df 中浮动数据的直观表示。如果你想要它不同,请更改 格式字符串

对于您的数字 '{:,g}' 会起作用(请参阅 format specification mini language - 向下滚动以查看解释它的 table)。

示例:

import pandas as pd
import numpy as np

with open("data.txt","w") as f:
    f.write("a\n1.4\n1.12")

df = pd.read_csv("data.txt")
print(df) 

# change the way floats are formatted
pd.options.display.float_format = '{:,.06f}'.format

# change the way floats are formatted
pd.options.display.float_format = '{:,g}'.format

df = pd.read_csv("data.txt")
print(df) 

输出:

# default formatting
      a
0  1.40
1  1.12


# {:,06f}
          a
0 1.400000
1 1.120000

# {:,g}
      a
0   1.4
1  1.12

从数值的角度来看,1.4 和 1.40 或 00001.40000000000 之间没有区别。


使用

df = pd.read_csv('minExamp.csv' , dtype = str)

糟糕的建议 - 它将(单个)列的数据类型更改为字符串类型。

这将阻止您使用数据帧的数字计算任何内容。