Как удалить пробелы в данных, полученных из csv-файла
Как удалить пробелы в файле csv, пробелы именно с списках.
Вот такой сейчас результат:
0;3;2088;3230;4294967295;03/11/1967;131;[];0;4294967295;0;01006C07;5;0;8;0;12102;04/08/2022;0;13;9;17;15;10;16;13;10;4294967295;0;0;4294967295;4294967295;4294967295;0;[(6, 10)];[(1, 1), (7, 2), (9, 2), (39, 10)];[(259, 131, 2, 90)]
1;9;199
Нужно удалить пробелы которые идут в списках. В данном случаи они в круглых скобках, но бывает ещё такие:
[12, 23, 48, 48]
В общем, удалить все пробелы в файле, идущие после запятой.
Желательно примеры с модулем pandas.
Мой код. Это как раз 3 списка, где нужно удалить пробелы.
people['Language'] = [(readInt(datFile, 2), readInt(datFile, 1)) for i in range(readInt(datFile, 1))]
people['OtherLangs'] = [(readInt(datFile, 2), readInt(datFile, 1)) for i in range(readInt(datFile, 1))]
people['Relationship'] = [(readInt(datFile, 2), readInt(datFile, 4), readInt(datFile, 1), readInt(datFile, 1)) for i in range(readInt(datFile, 2))]
peoples.append(people)
df = pandas.DataFrame(peoples)
df.to_csv("file.csv", index=False, sep=';')
Только подобные примеры пожалуйста не предлагайте:
with open("file.csv", 'r') as file:
data = file.read()
data = data.replace(", ", ",")
with open("file.csv", 'w') as file:
file.write(data)
Нужен вариант без повторного открытия файла. Спасибо.
Ответы (2 шт):
Автор решения: overxffff
→ Ссылка
import re
s='''0;3;2088;3230;4294967295;03/11/1967;131;[];0;4294967295;0;01006C07;5;0;8;0;12102;04/08/2022;0;13;9;17;15;10;16;13;10;4294967295;0;0;4294967295;4294967295;4294967295;0;[(6, 10)];[(1, 1), (7, 2), (9, 2), (39, 10)];[(259, 131, 2, 90)]
1;9;199'''
d=re.sub('\s', '', s)
print(d)
0;3;2088;3230;4294967295;03/11/1967;131;[];0;4294967295;0;01006C07;5;0;8;0;12102;04/08/2022;0;13;9;17;15;10;16;13;10;4294967295;0;0;4294967295;4294967295;4294967295;0;[(6,10)];[(1,1),(7,2),(9,2),(39,10)];[(259,131,2,90)]1;9;199
Автор решения: strawdog
→ Ссылка
судя по вопросу, мы уверены, что все данные давафрейме - строки.
ну так воспоkьзуйтесь методом replace аксессора str:
df.col1 = df.col1.str.replace(" ","")
либо для всего фрейма:
df = df.apply(lambda x: x.str.replace(" ",""))