我想缩短并清理CSV文件以在ElasticSearch中使用它。 但是某些数据框(单元格)中存在换行符,并且无法将CSV解析为ElasticSearch。我现在用熊猫缩短了CSV并尝试删除换行符,但是它不起作用。
代码如下:
import pandas as pd
f=pd.read_csv("test.csv")
keep_col = ["Plugin ID","CVE","CVSS","Risk","Host","Protocol","Port","Name","Synopsis","Description","Solution",]
new_f = f[keep_col].replace('\\n',' ', regex=True)
new_f.to_csv("newFile.csv", index=False)
短缺正在解决,但我在说明,简介和解决方案中有换行符。 知道如何使用Python / Pandas解决它吗? CSV大约有10万个条目,因此必须在每个条目中都删除换行符。
答案 0 :(得分:0)
根据我的了解,.replace()参数的第三个参数计算了您要用新的子字符串替换旧子字符串的次数,因此您只需删除第三个参数即可,不知道新行存在的次数。
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var data = JSON.parse(this.responseText);
if (data.type == 0) {
createProfileDiv(data);
changeSubmitFunction();
} else if (data.type == 1) {
console.log("jaaaa1");
}
}
};
xmlhttp.open("POST", "getProfile", true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlhttp.send("id=" + getCookie("userId"));
function changeSubmitFunction() {
var form = document.getElementById("profile-form");
form.onsubmit = function(e) {
e.preventDefault();
xmlhttp.open("POST", "updateProfile", true);
xmlhttp.setRequestHeader("Content-Type","application/JSON");
var formData = new FormData(form);
let reqBody = {};
for (let entry of formData.entries()) {
reqBody[entry[0]] = entry[1];
}
xmlhttp.send(JSON.stringify(reqBody));
return false;
}
}
这应该有帮助
答案 1 :(得分:0)
如果不强制使用pandas数据帧,则可以使用简单的python通过以下方式进行操作:
with open('test.csv', 'r') as txtReader:
with open('new_test.csv', 'w') as txtWriter:
for line in txtReader.readlines():
line = line.replace('\\n', '')
txtWriter.write(line)