gpt4 book ai didi

python - 使用 quip-api 和 pandas 阅读 Quip 电子表格

转载 作者:行者123 更新时间:2023-12-04 08:19:02 31 4
gpt4 key购买 nike

我已经开始探索 Quip API。

我在 Quip 中创建了一个包含以下详细信息的电子表格:

  1. 添加了电子表格的标题
  2. 在电子表格中添加以下数据:
<表类="s-表"><头>id姓名<正文>1哈利2赫敏3罗恩

这是我尝试从 Quip 中读取的方式:

import quip
import pandas as pd
import numpy as np
import html5lib

client = quip.QuipClient(token, base_url = baseurl)
rawdictionary = client.get_thread(thread_id)

dfs=pd.read_html(rawdictionary['html'])
raw_df = dfs[0]
raw_df.drop(raw_df.columns[[0]], axis = 1, inplace = True)
#raw_df.dropna(axis=0,inplace=True)
print(raw_df.replace(r'^\s+$', np.nan, regex=True))

我尝试用 nan 对象删除行,还尝试用 nan 替换空白字符串。但是,我仍然看到这些空行和列出现在数据框中,例如:

         A         B  C  D  E  F  G  H  I  J  K  L  M  N  O  P
0 id name ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
1 1 harry ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
2 2 hermione ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
3 3 ron ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
4 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
5 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
6 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
7 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
8 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
9 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
10 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
11 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
12 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
13 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
14 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
15 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
16 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
17 ​

​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​

问题

  1. 通过 Python 阅读 Quip 电子表格的最佳方式是什么?
  2. 如何清理多余的行和列,并仅处理具有有效记录和标题的行作为 pandas 数据帧中的 idname
  3. 在我运行 print(raw_df) 时添加 raw_df.dropna(axis=0,inplace=True) 之后,我得到了 None 。为什么?

最佳答案

Quip 会自动拉入一些带有\u200b unicode 字符的额外空白列和行。

我是这样解决的:

import quip
import pandas as pd
import numpy as np
import html5lib

client = quip.QuipClient(token, base_url = baseurl)
rawdictionary = client.get_thread(thread_id)

dfs=pd.read_html(rawdictionary['html'])
raw_df = dfs[0]

raw_df.columns=raw_df.iloc[0] #Make first row as column header
raw_df=raw_df[1:] #After the above step, the 1st two rows become duplicate. Delete the 1st row.
raw_df=raw_df[attribs]
cleaned_df = raw_df.replace(np.nan, 'N/A')
cleaned_df = cleaned_df.replace('\u200b', np.nan)
cleaned_df.dropna(axis=0,how='any',inplace=True)

关于python - 使用 quip-api 和 pandas 阅读 Quip 电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65585084/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com