Python 将CSV减采样10倍并将其保存到另一个文件中
我有一个包含多行(即3000到4000行)的.csv文件,其中每行代表一个采样率为1Hz的事件。我想创建另一个.csv,其中每一行表示采样率为0.1Hz的事件 换句话说,我想从分辨率为每秒1个事件的.csv转换为分辨率为每10秒1个事件的.csvPython 将CSV减采样10倍并将其保存到另一个文件中,python,c,pandas,csv,awk,Python,C,Pandas,Csv,Awk,我有一个包含多行(即3000到4000行)的.csv文件,其中每行代表一个采样率为1Hz的事件。我想创建另一个.csv,其中每一行表示采样率为0.1Hz的事件 换句话说,我想从分辨率为每秒1个事件的.csv转换为分辨率为每10秒1个事件的.csv 我需要一个与语言无关的算法的伪代码,还需要一个实现(最好是C语言)。不太清楚要用哪种语言实现它。以下是一个语言不可知的计划: 要求用户加载文件 以只读方式打开文件 以写模式打开另一个文件 逐行迭代读取文件 保留一个计数器,并在每次读取循环中的一行时递
我需要一个与语言无关的算法的伪代码,还需要一个实现(最好是C语言)。不太清楚要用哪种语言实现它。以下是一个语言不可知的计划:
- 要求用户加载文件
- 以只读方式打开文件
- 以写模式打开另一个文件
- 逐行迭代读取文件
- 保留一个计数器,并在每次读取循环中的一行时递增它
则将该行追加到写入文件中如果计数器mod 10==0
- 完成后关闭两个文件
将熊猫作为pd导入
#模拟作者初始条件的样板
#创建分辨率为1Hz的示例CSV文件
df=pd.DataFrame()
df['time']=pd.日期\范围(开始时间=2020-01-08',周期=3000,频率=s')
df.to_csv(path_或_buf=“input.csv”,index=False)
#读文件
df=pd.read\u csv('input.csv')
#转换为日期时间
df['time']=pd.to_datetime(df['time'])
#重新采样至0.1Hz
df=df.resample('10s',on='time')。first()
df.to_csv(path_或_buf=“output.csv”,index=False)
这一收益率:
2020-01-08 00:00:00
2020-01-08 00:00:10
2020-01-08 00:00:20
2020-01-08 00:00:30
2020-01-08 00:00:40
您将在所有标记的语言中实现此功能?您是指命令行中的
awk'(NR-1)%10==0'foo.csv
?是awk namefile还是command?@dannyleeploote只需将其破解到您的shellSee中,即可获得基本的CSV解析器。根据需要进行调整。如果可以用C语言,那会更好,因为我在C语言方面的经验更好,但我正在看哪种语言能产生最短的程序!在Python中,这是一个5-6行程序,它是一个1行程序。。。我想知道,为什么OP对此不满意,太简单了Perl也可以在一行中完成;不过,这比Awk版本更难理解。我必须学会那个Awk