Как сохранить формат при записи в CSV с использованием панд? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть такой текстовый файл:

id,name,sex,
1,Sam,M,
2,Ann,F,
3,Peter,
4,Ben,M,

Затем я читаю файл: df = pd.read_csv ('data.csv')

После этого я пишуэто в другой файл: df.to_csv ('new_data.csv', index = False)

Затем я получаю

id,name,sex,Unnamed: 3
1,Sam,M,
2,Ann,F,
3,Peter,,
4,Ben,M,

Вы видите, что вместо одной в запятой есть две запятыечетвертая строка.

Как сохранить формат при использовании pd.to_csv?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Проблема в вашем коде в том, что у вас есть запятая после столбца sex в вашем файле.Итак, read_csv считает, что это новый столбец, который не имеет имени и данных.

df= pd.read_csv('data.csv')
df

id  name    sex Unnamed: 3
0   1   Sam M   NaN
1   2   Ann F   NaN
2   3   Peter   NaN NaN
3   4   Ben M   NaN

Следовательно, у вас есть дополнительный столбец Безымянный.Поэтому, когда вы пишете to_csv, он добавляет два пустых значения в 3-ю строку и, следовательно, почему, два ,.

Попробуйте:

df = pd.read_csv('data.csv', use_cols = ['id', 'name', 'sex'])
df.to_csv('new_data.csv', index = False)
0 голосов
/ 20 ноября 2018

pandas сохраняет формат - в строке 3d нет пола, и поэтому в csv должен быть пустой столбец - поэтому вы попадаете в запятые, поскольку разделяете пустой столбец,

Ваш исходный текстовый файл не был действительным файлом CSV .

То, что вы хотите сделать, - это что-то еще, что не является записью действительного файла CSV - у вас будетчтобы сделать это самостоятельно, я не знаю ни одного существующего метода для создания вашего формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...