我正在尝试将 CSV 格式的数据导入到 Pandas 数据框中。 CSV 数据位于 Web URL 上的 .txt 文件内。问题是我只想导入格式为 CSV 的 .txt 文件的一部分(见下图)。本质上,我需要跳过前 9 行,然后将第 10-16 行导入为 CSV。
我的代码
import csv
import pandas as pd
import io
url = "http://www.bom.gov.au/climate/averages/climatology/windroses/wr15/data/086282-3pmMonth.txt"
df = pd.read_csv(io.StringIO(url), skiprows = 9, sep =',', skipinitialspace = True)
df
我收到一条很长的错误消息,最终显示“EmptyDataError: No columns to parse from file”
我看过类似的例子Read .txt file with Python Pandas - strings and floats但这是不同的。
最佳答案
上面的代码尝试从 URL 本身读取 CSV 文件,而不是从该 URL 获取的文本文件。要明白我的意思,请取出 skiprows
参数,然后显示数据框。你会看到这个:
Empty DataFrame
Columns: [http://www.bom.gov.au/climate/averages/climatology/windroses/wr15/data/086282-3pmMonth.txt]
Index: []
请注意,这些列是 URL 本身。
导入requests
(您可能必须先安装它)然后尝试以下操作:
content = requests.get(url).content
df = pd.read_csv(io.StringIO(content.decode('utf-8')),skiprows=9)
关于Python pandas 从嵌入 Web txt 文件中的 csv 创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60283065/