用python读写和处理csv文件,python csv文件读写

  用python读写和处理csv文件,python csv文件读写

  (我在GitHub上开了一期。)

  以下行为在我看来是不正确的。似乎如果read_csv的默认值是na_values=False,那么任何包含 na 的值都不应该被解释为NaN,但事实似乎并非如此。

  在这个帖子中注意到了这种行为(见@JianxunLi对答案的评论),这里的 NA 实际上是指北美。我实际上无法找到一种方法来阅读这些内容,而不将其更改为NaN,并且必须有一些方法来做到这一点。

  这是csv的一个例子。

  %more foo.txt

  x,y

  不,不

  福,福

  我把 NA 包括在引号和外面,看看它是否重要,但正如你在下面看到的,它似乎不重要。

  pd.read_csv(foo.txt )

  Out[56]:

  x y

  0楠楠

  1个foo foo

  pd.read_csv(foo.txt ,na_values=False)

  Out[57]:

  x y

  0楠楠

  1个foo foo

  pd.read_csv(foo.txt ,na_values=foo )

  Out[58]:

  x y

  0楠楠

  1楠楠

  看来‘南’的数据值被当成和‘那’一样了。

  编辑:我觉得基于@Marius的回答我更理解这一点虽然在我看来不太合适(默认行为,即不是Marius的回答,似乎是对正在发生的事情的正确解释)。

  na_values=False=NA和NaN被视为NaN

  na_values=foo=NA、NaN和foo被视为NaN

  我想我可以理解这是数值列的默认行为,但似乎不应该是字符串列的默认行为。没有看到马吕斯的回答,我也很难从文件中搞清楚这一点。

  添加(2):

  另外,为了比较,我把它读入Stata和Excel,两种情况下都把“NA”当作纯文本而不是NaN/missing。有没有其他和熊猫一样默认行为的包或者库?

  解决方法:

  你需要保持_default_NA=False。默认情况下,na_values中包含的任何字符串都将添加到标准na字符串集中,例如NA,NaN:

  pd.read_csv(foo.txt ,keep_default_na=False)

  Out[5]:

  x y

  0 NA NA

  1个foo foo

  标签:蟒蛇,熊猫

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: