温文尔雅的圣诞树 · pandas利用replace进行全部替换或 ...· 3 周前 · |
神勇威武的红酒 · Python dat文件读入 ...· 2 周前 · |
威武的单杠 · Pandas中日期由“YYYYMMDD”改为 ...· 1 周前 · |
有胆有识的椰子 · Pandas ...· 3 天前 · |
奔跑的风衣 · pandas高效读取大文件的探索之路 - ...· 3 天前 · |
玩滑板的消炎药 · 巴迪欧眼中的20世纪· 3 月前 · |
一直单身的饭卡 · 云启未来-阿里云走进西安交通大学系列讲座活动 ...· 3 月前 · |
大鼻子的盒饭 · 千年《玛纳斯》焕新演绎“飞入寻常百姓家”-中新网· 1 年前 · |
果断的可乐 · 北京旅游,我能告诉你的都在这儿了 - 知乎· 1 年前 · |
独立的跑步鞋 · 《革命者》:时代的使命永远年轻_影评_电影网 ...· 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
扫码关注腾讯云开发者
领取腾讯云代金券
玩滑板的消炎药 · 巴迪欧眼中的20世纪 3 月前 |
大鼻子的盒饭 · 千年《玛纳斯》焕新演绎“飞入寻常百姓家”-中新网 1 年前 |
果断的可乐 · 北京旅游,我能告诉你的都在这儿了 - 知乎 1 年前 |