python - 从 csv 文件中删除前 'n' 行并保留标题
问题描述
好吧,我需要检查行数是否 >= 'x',如果为真,删除前 'n' 行
目前我将 csv 加载到 df,删除行并将其加载回来,但这不是很干净和有效的方法。你知道其他吗?
这是我所看到的人类语言的算法:
~~~~~~~~~~
if number_of_rows(file.csv) >= 3000:
del(file.csv[1:1499]) # as first line is header, we wouldn't want to delete it*
~~~~~~~~~~
UPD:忘了补充,该文件每分钟都在增长,我只需要最后 1.5k 行。代码是循环的一部分
解决方案
IIUC,如果您确定文件将适合内存,则可以使用上下文管理器。
n = 25 # your line count.
with open('/path/to/your_file.csv') as f:
data = f.readlines()
lines = len(data)
if lines >= n:
df = pd.read_csv(data,skiprows=range((1, lines-1500)) #using range will keep your header.
else:
df = pd.read_csv(data)
推荐阅读
- laravel-5 - 自定义域不适用于宅基地
- javascript - 时间返回的格式不正确
- r - 在 ggplot2 字幕的 plotmath 表达式中包含条件元素
- javascript - JavaScript 幻灯片未按预期工作
- time-series - 重现 ARIMA 预测(熊猫)
- c - 使用结构和指针时如何释放分配的内存?
- php - 如何为 PHP 多维数组中的每个对象添加新的键值对?
- react-native - 返回时未触发 ReactNative WebView onNavigationStateChange
- java - Hibernate ORA-00932: 不一致的数据类型: 预期 NUMBER 得到 BINARY
- javascript - 通过 Javascript 调用自定义操作时出现错误的请求错误