准确地说,去掉一个特定的月日(年日)。ie:0229)从时间序列

2024-10-01 00:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用awk(尽管对python/pandas解决方案开放)从timeseries数据集中提取除特定日期之外的所有内容。特定的日期只在整个文件中有时出现,因为只有在leapyear期间有记录时,才会出现leapyear日期。你知道吗

数据集如下所示,以leapyear day实例发生的位置为例:

02-28   HammondBay  139 279 30  49.23281860 -123.96769714   4   5150    69.9
02-29   HammondBay  139 279 30  49.23281860 -123.96769714   1   1437    50.9
03-01   HammondBay  139 279 30  49.23281860 -123.96769714   4   5754    59.0
03-02   HammondBay  139 279 30  49.23281860 -123.96769714   4   5732    54.8
03-03   HammondBay  139 279 30  49.23281860 -123.96769714   4   5724    128.5

因此,要明确的是,预期的结果是从这个以制表符分隔的timeseries数据集中删除02-29的每个实例的文件。你知道吗


Tags: 文件数据实例内容pandas记录解决方案制表符
3条回答

要删除以02-29前缀开头的所有行,可以使用sed -i

$ sed -i '/^02-29/d' input.txt 

或者使用grep+sponge

$ grep -v '^02-29' input.txt | sponge input.txt

其中来自moreutilssponge实用程序允许覆盖管道中用作输入的文件。你知道吗

awk '!/02-29/' your_file.txt | tee new_file.txt

如何grep

grep -Ev '02-29' your_file.txt > new_file.txt

我在this site遇到了一些移除(或剥离)方法

因此,使用awk解决上述问题的方法是:

awk '!/02-29/' file > temp && mv temp.whatever file

相关问题 更多 >