繁体   English   中英

熊猫read_csv,重复使用跳过的行

[英]Pandas read_csv, reuse of skipped rows

数据集由10列组成,但前6行是“介绍数据”,只有一列

例如,文件如下所示:

dataset_name = data1
date= 1/1/1970
items=1000
... (for 6 lines)

# following by the data itself
column1,column2.column3.....

从网址加载制表符分隔的值数据集,并跳过前6行(不是数据的一部分,而是所需的信息)

data = pd.read_csv(url,skiprows=6, engine='python')

问题:由于需要最上面的行,因此如何在跳过后的行中将其取回? (无需两次加载文件...。)

您可以从StringIO创建类似文件的对象,并从中读取以下内容:

import pandas as pd
import requests
import io

url = 'https://srv-file6.gofile.io/download/su2C6D/so57674146.csv'

resp = requests.get(url)
f = io.StringIO(resp.content.decode())

header = {}
for i in range(6):
    key,val = f.readline().strip().split('=')
    header[key] = val

df = pd.read_csv(f, engine='python')

print(header)
print(df)

CSV文件:

dataset_name = data1
date= 1/1/1970
items=1000
line_4=4
line_5=5
line_6=6
column1,column2,column3
1,2,3
10,20,30

示例程序的输出:

{'dataset_name ': ' data1', 'date': ' 1/1/1970', 'items': '1000', 'line_4': '4', 'line_5': '5', 'line_6': '6'}
   column1  column2  column3
0        1        2        3
1       10       20       30

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM