1

我通过 GSpread 和 Pandas 读取了一些 Google Sheet 数据;但是,Pandas 将我的 dtype 作为对象,我无法更改它。

我确定我的 Google 表格值是数字,除了标题之外,它们是字符串。Matplotlib 不允许我绘制图表,因为它会引发类型错误。

如果我将文件下载为 CSV,问题就解决了,但我想直接从谷歌表中读取文件。

这是代码:

main_worksheet=sh.worksheet('Sheet3')

data = main_worksheet.get_all_values()
headers = data.pop(0)

df = pd.DataFrame(data, columns=headers, dtype='int64')

df['week'].astype(str).astype(int)

print(df['week'])

结果:

0     28
1     29
2     30
3     31
4     32
5     33
6     34
7     35
8     36
9     37
10    38
11    39
12    40
13    41
14    42
15    43
16    44
17    45
18    46
19    47
20    48
Name: week, dtype: object
4

1 回答 1

0

有同样的问题。显然,当使用 pandas 阅读谷歌表格时,它不允许在同一列中有不同的数据类型。如果它在同一列中找到不同的数据类型,它会将所有内容转换为字符串/对象,但这很奇怪,因为当您检查字符串的特定值时,现在它们默认为 NaN。

要解决这个问题,您需要将整个列转换为与谷歌表格中相同格式的“纯文本”,然后如果您需要更改数据类型,您可以在读取数据框后使用 apply 方法进行操作。

问题:

在此处输入图像描述

和熊猫一起读书

在此处输入图像描述

解决方案:

在此处输入图像描述

和熊猫一起读书

在此处输入图像描述

于 2022-02-19T16:06:35.907 回答