如何将带指定分隔符的单行URL数据导入pandas DataFrame并添加表头
实现思路
- 第一步:将urllib读取到的字节数据解码为UTF-8格式的字符串
- 第二步:使用分号
;作为分隔符拆分字符串,得到每行数据的列表,同时过滤掉末尾可能出现的空行 - 第三步:遍历每行数据,使用逗号
,作为分隔符拆分每行,得到符合DataFrame输入要求的二维数据列表 - 第四步:自定义表头列表,直接将二维数据和表头传入pandas.DataFrame构造函数,即可得到目标格式的DataFrame
完整可运行代码
import pandas as pd import urllib as ul link = "https://xxxxxxxxx" f = ul.request.urlopen(link) # 读取字节数据并解码为字符串 raw_str = f.read().decode('utf-8') # 按分号拆分所有行,过滤空行 row_list = [row for row in raw_str.split(';') if row.strip()] # 按逗号拆分每一行得到二维数据 data = [row.split(',') for row in row_list] # 自定义表头,可根据实际列需求修改扩展 columns = ['Date', 'Time', 'Value1', 'Value2', 'Value3', 'Value4', 'Value5', 'Value6', 'Value7', 'Value8', 'Value9'] # 生成DataFrame df = pd.DataFrame(data, columns=columns) # 可选操作:将对应列转换为数值类型,避免默认全为字符串格式 df = df.astype({ 'Date': 'Int64', 'Value1': 'Int64', 'Value2': 'Float64', 'Value3': 'Float64', 'Value4': 'Int64', 'Value5': 'Float64', 'Value6': 'Float64', 'Value7': 'Float64', 'Value8': 'Float64', 'Value9': 'Float64' }) # 输出前5行验证效果 print(df.head())
内容的提问来源于stack exchange,提问作者Judith
相关产品推荐
相关产品推荐

