python - pandas read_csv() skiprows=[0] 给出问题?
问题描述
我正在尝试在熊猫中读取 csv。我的文件开始如下:
Site,Tank ID,Product,Volume,Temperature,Dip Time
aaa,bbb,....
.....
我读了它:
df = pd.DataFrame()
date_col = ['Dip Time']
data = pd.read_csv(atg_path, delimiter=',', skiprows=[1], skipinitialspace=True,
dayfirst=True,
parse_dates=date_col)
在这里它跳过第一行数据。但我需要它。
如果我使用skiprows=[0]
,那么我会在某些列上出现错误,例如ValueError: 'Dip Time' is not in list
我不知道为什么?它不应该跳过任何数据。怎么了?
解决方案
我觉得skiprows
这里的参数不是必须的,可以省略。
但如果传递 0 值,则意味着don't skip any rows
:
skiprows=0
import pandas as pd
from io import StringIO
temp="""Site,Tank ID,Product,Volume,Temperature,Dip Time
aaa,bbb,ccc,ddd,eee,fff
a,b,c,d,e,f
"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp))
print (df)
Site Tank ID Product Volume Temperature Dip Time
0 aaa bbb ccc ddd eee fff
1 a b c d e f
temp="""Site,Tank ID,Product,Volume,Temperature,Dip Time
aaa,bbb,ccc,ddd,eee,fff
a,b,c,d,e,f
"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), skiprows=0)
print (df)
Site Tank ID Product Volume Temperature Dip Time
0 aaa bbb ccc ddd eee fff
1 a b c d e f
但是如果通过[0]
则意味着删除文件的第一行,这里是标题,这意味着"skip the 0'th row, i.e. the headed row
:
temp="""Site,Tank ID,Product,Volume,Temperature,Dip Time
aaa,bbb,ccc,ddd,eee,fff
a,b,c,d,e,f
"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), skiprows=[0])
print (df)
aaa bbb ccc ddd eee fff
0 a b c d e f
推荐阅读
- asp.net-mvc - 做ASP。NET 核心仍然需要托管。网络支持
- python - 带有 dict.update() 的 Pandas groupby 函数
- sql - SQL Server,使用或语句条件
- r - 在不使用 for 循环的情况下将向量的不同元素加到一个新向量中?(R 编程)
- c# - 得到错误资产文件'obj\project.assets.json'没有'.NETCoreApp,Version = v2.2'的目标
- c - typedef 结构中的指针
- c - 当我将指针传递给函数时,取消引用指向指针的指针不起作用。为什么?(C)
- java - 如何使并发实用程序(JSR 236)在普通的非 EE Tomcat 8 中工作?
- javascript - 无法获取 Html.Kendo().ComboBoxFor 的选定值
- c++ - C++ 是否有定义的方法来传递指向类成员对象的成员函数的指针?