我的任务是创建一个名为script.sed
的脚本,它必须设置以下条件:
- 擦除前两列(已经在下面的代码中实现)
- 擦除“频率”列中带有0的行(在下面的代码中已经实现)
- 保持字段的标题不被修改,擦除以前擦除的列的标题,并将列的名称“freq_prop_headlines”更改为“%_headlines”(在下面的代码中已经实现)
- 将
freq_prop_headlines
的小数点向后移动两位以获得百分比而不是百分比,保留所有数字并删除小数点前任何不必要的零。一些记录采用科学记数法(全部提升到-5),它们也必须被处理,以十进制记数法显示。(执行部分注:例如,如果有一个像0.000814664这样的数字,它必须变成0.0814664)
因此,我只剩下最后一点要解决。
我必须使用的CSV文件名为headlines_words.csv
,它的前10行是:
Unnamed: 0;Unnamed: 0.1;year;country;word;frequency;count;freq_prop_headlines;word_len;freq_rank;hfreq_rank;theme
12;277;2010;India;cricketer;0;1584;0.0;9;20;20;empowerment
13;278;2011;India;cricketer;0;2438;0.0;9;20;20;empowerment
14;279;2012;India;cricketer;0;3634;0.0;9;20;20;empowerment
15;280;2013;India;cricketer;4;4910;0.000814664;9;20;20;empowerment
16;281;2014;India;cricketer;6;7502;0.0007997869999999;9;20;20;empowerment
17;282;2015;India;cricketer;11;10532;0.001044436;9;20;20;empowerment
18;283;2016;India;cricketer;14;14012;0.000999144;9;20;20;empowerment
19;284;2017;India;cricketer;48;17097;0.00280751;9;20;20;empowerment
20;285;2018;India;cricketer;40;19170;0.002086594;9;20;20;empowerment
21;286;2019;India;cricketer;66;20849;0.003165619;9;20;20;empowerment
我已经得到的script.sed
的代码是:
# Erase the two first columns:
s/^[^;]*;[^;]*;//
# Erase all rows with count 0 in the frequency column
/^.*;0;/d
# Rename freq_prop_headlines to %_headlines
s/freq_prop_headlines/%_headlines/
# Show the first 10 rows (to ease the code checking by the output)
10q
我必须运行下面的命令(它是语句强制性的):
sed -f script.sed headlines_words.csv
一旦运行我的代码,我得到了这个:
year;country;word;frequency;count;%_headlines;word_len;freq_rank;hfreq_rank;theme
2013;India;cricketer;4;4910;0.000814664;9;20;20;empowerment
2014;India;cricketer;6;7502;0.0007997869999999;9;20;20;empowerment
2015;India;cricketer;11;10532;0.001044436;9;20;20;empowerment
2016;India;cricketer;14;14012;0.000999144;9;20;20;empowerment
2017;India;cricketer;48;17097;0.00280751;9;20;20;empowerment
2018;India;cricketer;40;19170;0.002086594;9;20;20;empowerment
预期输出必须为:
year;country;word;frequency;count;%_headlines;word_len;freq_rank;hfreq_rank;theme
2013;India;cricketer;4;4910;0.0814664;9;20;20;empowerment
2014;India;cricketer;6;7502;0.07997869999999;9;20;20;empowerment
2015;India;cricketer;11;10532;0.1044436;9;20;20;empowerment
2016;India;cricketer;14;14012;0.0999144;9;20;20;empowerment
2017;India;cricketer;48;17097;0.280751;9;20;20;empowerment
2018;India;cricketer;40;19170;0.2086594;9;20;20;empowerment
现在我如何设置语句的最后一个条件?
1条答案
按热度按时间nle07wnf1#
如果freq_prop_headlines是唯一包含小数的列,则将以下内容添加到脚本中可能会有所帮助。