"Thousands" 和 pandas.read_csv 的“skip_blank_lines”参数将无法正常工作。为什么?

"Thousands" and " skip_blank_lines" arguments of pandas.read_csv would not work properly. Why?

这是我的代码:

in[0]
      import pandas as pd
      df = pd.read_csv('datefile6.csv',thousands=',', skip_blank_lines=True)
      df

out[1]      month   day     year    salary   age
       0    8.0     15.0    2012.0  1400.0   25.0
       1    NaN     NaN     NaN     NaN      NaN
       2    9.0     4.0     2020.0  2500.0   26.0

如我们所见,数千没有用。此外,命令未跳过空白的第 [1] 行。

我期望“千”命令中有“,”,并从“skip_blan_lines”命令中删除了行[1]。

thousands参数是一个属性的输入文件。它告诉 pandas 您的 csv 文件中的数字包含千位字符(通常是逗号或点)。参数 thousands 不影响输出。

考虑这段代码:

import pandas as pd
df = pd.read_csv('datafile6.csv', sep=';', thousands=',', skip_blank_lines=True)
print(df)

其中 datafile6.csv 是:

month;day;year;salary;age
8;15;2,012;1,400;25
9;4;2,020;2,500;26

我得到的输出为:

   month   day    year  salary   age
0    8.0  15.0  2012.0  1400.0  25.0
1    9.0   4.0  2020.0  2500.0  26.0

您可以看到 1,400 已被正确解析为 1400 等

关于您关于 skip_blank_lines 的问题。我怀疑您的 csv 不是完全空白的行,而是包含字段分隔符。
现在将其视为来自 datafile6.csv:

的内容
month;day;year;salary;age
8;15;2,012;1,400;25
;;;;
9;4;2,020;2,500;26

9;3;2,021;3,200;33

我将数据帧输出为:

   month   day    year  salary   age
0    8.0  15.0  2012.0  1400.0  25.0
1    NaN   NaN     NaN     NaN   NaN
2    9.0   4.0  2020.0  2500.0  26.0
3    9.0   3.0  2021.0  3200.0  33.0

NaN 来自 datafile6.csv 的第 3 行,它不是真正的空白,但有 4 个字段分隔符。跳过完全空白的第 5 行。这是参数 skip_blank_lines

的行为

希望一切顺利。