获取TypeError:期望pandas.dataframe.replace调用的字符缓冲区对象?

时间:2018-02-09 11:58:44

标签: python pandas character-encoding pygsheets

我正在使用python2.7&amp ;;在python和Google工作表之间构建一个接口。 pygsheets:

错误:

Traceback (most recent call last):
  File "Tracker.py", line 108, in <module>
    test.track()
  File "Tracker.py", line 99, in track
    self.sheet.set_dataframe(json.dumps(pd.DataFrame(list(cursor.fetchall())),default=iterencode),self.anchor,copy_index=False, copy_head=True, fit=False, escape_formulae=False,nan=str('\n'))
  File "/usr/local/lib/python2.7/dist-packages/pygsheets/worksheet.py", line 742, in set_dataframe
    df = df.replace(pd.np.nan, nan)
TypeError: expected a character buffer object

我已经尝试过nan ='NaN','\ n'以及0-但是所有内容都会出现相同的错误。

错误完全在这一行内:

self.sheet.set_dataframe(json.dumps(pd.DataFrame(list(cursor.fetchall())),default=iterencode),self.anchor,copy_index=False, copy_head=True, fit=False, escape_formulae=False,nan=str('NanN'))

实际上是在最后一个arg:nan=str('NaN')

我检查了pandas文档以替换:

value : scalar, dict, list, str, regex, default None

Value to use to fill holes (e.g. 0), alternately a dict of values specifying which value to use for each column (columns not in the dict will not be filled). Regular expressions, strings and lists or dicts of such objects are also allowed.

也似乎或多或少符合要求。

pygsheets / worksheet.py除了那一行之外还没有任何其他内容:df = df.replace(pd.np.nan, nan)&amp; nan是我发送的未改变的输入,即str('NaN')

我想知道这意味着什么 - 这是一个版本问题,某些python或库版本不匹配?或其他什么?

我通过打印到csv文件然后将其作为数据框读取并将其传递到函数中来破解我的方式,因为我没有及时找到解决方案。

但是,我仍然想了解这个问题是如何以及为什么出现在哪里?感谢

1 个答案:

答案 0 :(得分:0)

如果您尝试将所有NaN替换为其他值,为什么不使用df.fillna(newValue)