У меня есть файл .csv
, который представлен таким образом (когда я открываю его в Excel)
a,description,b,c #columns
something,"bla,bla,bla",something,something #elements
something,"bla,bla,bla",something,something #elements
something,"bla,bla,bla",something,something #elements
Когда я импортирую .csv в pandas
df = pd.read_csv("a.csv")
значения описания представлены без двойных кавычек
a description b c
0 something bla,bla,bla something something
1 something bla,bla,bla something something
2 something bla,bla,bla something something
1-й сценарий
Теперь, если я экспортирую df , то есть из pandas в .csv df.to_csv(r"a1.csv", index=False, header=True)
двойные кавычки все еще присутствуют в файле .csv, как и ожидалось (когда я открываю его в excel)
a,description,b,c #columns
something,"bla,bla,bla",something,something #elements
something,"bla,bla,bla",something,something #elements
something,"bla,bla,bla",something,something #elements
2-й сценарий
Однако, если я уменьшу набор данных с помощью маскирования в pandas
df1 = df.loc[:,("description","c")]
description c
0 bla,bla,bla something
1 bla,bla,bla something
2 bla,bla,bla something
, а затем экспортирую этот новый набор данных df1 в файл .csv, используя ту же строку кода df1.to_csv(r"a2.csv", index=False, header=True)
без установки quoting=csv.QUOTE_NONE
двойные кавычки теперь исчезают в .csv (когда я открываю его в excel)
description,c #columns
bla,bla,bla,something #elements
bla,bla,bla,something #elements
bla,bla,bla,something #elements
Мне интересно, почему это происходит? А также мне интересно, почему все запятые, присутствующие в столбце «описание», не вызывают ошибку error: Expected 2 fields in line x, saw x
, если я импортирую этот последний .csv в pandas df2 = pd.read_csv("a2.csv")
. Кажется, что двойные кавычки читаются и присутствуют, даже если они не отображаются