温暖的卡布奇诺 · 用python的pandas读取excel文 ...· 2 周前 · |
被表白的日记本 · 【python】读取excel的行列内容,p ...· 2 周前 · |
好帅的乒乓球 · Pandas读取某列、某行数据——loc、i ...· 1 周前 · |
帅呆的长颈鹿 · 空调安装【报价 品牌 口碑评价 测评 ...· 3 月前 · |
飞奔的马铃薯 · 【创建美丽庭院 ...· 1 年前 · |
近视的大象 · 登上“FIRST”这片岛_腾讯新闻· 1 年前 · |
慈祥的黄豆 · 细说南斯拉夫内战和科索沃战争(上)——南斯拉 ...· 1 年前 · |
爱看球的签字笔 · fanbox怎么进入 - 百度· 1 年前 · |
我很难弄清楚如何在csv文件中跳过n行,但保留头1行。
我想要做的是迭代,但保留第一行的标题。
skiprows
使标题位于跳过的行之后的第一行。做这件事的最好方法是什么?
data = pd.read_csv('test.csv', sep='|', header=0, skiprows=10, nrows=10)
为了扩展@AlexRiley的答案,
skiprows
参数接受一个数字列表,该列表确定要跳过哪些行。所以:
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
与以下内容相同:
pd.read_csv('test.csv', sep='|', skiprows=[1,2,3,4,5,6,7,8,9])
忽略特定行的最好方法是创建忽略列表(手动创建,或者使用返回整数列表的
range
之类的函数)并将其传递给
skiprows
。
如果你正在迭代一个很长的csv文件,你可以使用 chunksize 参数。如果出于某种原因,您需要手动执行单步执行,只要您知道需要执行多少次迭代,就可以尝试执行以下操作:
for i in range(num_iters):
pd.read_csv('test.csv', sep='|', header=0,
skiprows = range(i*10 + 1, (i+1)*10), nrows=10)
答案已经很不错了。考虑一下这个通用的场景:
假设您的xls/csv在顶部2行(第0,1行)中有垃圾行。第2行(第3行)是真正的标题,您希望从第50行(即第51行)开始加载10行。
下面是代码片段:
pd.read_csv('test.csv', header=2, skiprows=range(3, 50), nrows=10)
如果您需要跳过/删除特定的行,例如前3行(即0,1,2),然后再跳过2行(即4,5)。您可以使用以下命令保留标题行:
df = pd.read_csv(file_in, delimiter='\t', skiprows=[0,1,2,4,5], encoding='utf-16', usecols=cols)
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券