Запятая в текстовом предложении csv не читается в выводе python pandas read

Текстовые данные в файле csv:

Пример1:

id,name,address
1,hendro,bandung

Результат:

id name class
1 hendro bandung

Пример2:

id,name,class
1,hendro,"bandung,semarang"

Результат:

id                          name class
1,hendro,"bandung,semarang" NaN  NaN

Я пытаюсь с pandas.read.csv():

import pandas as pd
train = pd.read_csv('book1.csv')
train

Мои ожидания: результат для примера2 такой;

id name   class
1  hendro bandung,semarang

Что случилось? Как я могу это исправить?

Во-первых, это будет pd.read_csv("file.csv"), и он отлично работает и правильно читает файл для меня. если вы все еще сталкиваетесь с проблемой, просто введите sep = "," в качестве дополнительного ввода при чтении. поезд = pd.read_csv ("файл.csv", sep = ",")

Amit Gupta 15.04.2019 06:28

у меня не работает @AmitGupta, может быть, какое-то особое правило, когда я создаю данные в csv?

Hendro Prasetyo 15.04.2019 06:46

Как именно вы ожидаете, что результат будет выглядеть? Было бы здорово, если бы вы добавили то, что ожидаете, к своему посту.

Ben Pap 15.04.2019 06:48

привет @BenPap спасибо, но вы можете посмотреть пример 2. это моя проблема

Hendro Prasetyo 15.04.2019 06:51

Итак, вы хотите сохранить все запятые между всем?

Ben Pap 15.04.2019 06:53

Результат, который я хочу, вы можете посмотреть в примере 2 моего ожидания в последнем разделе. результат, на который я надеюсь @BenPap

Hendro Prasetyo 15.04.2019 06:57

когда вы открываете свой csv в текстовом редакторе, он будет выглядеть как «id, name, class» «1, hendro», «bandung, semarang» «», поэтому кавычка не работает, она игнорирует кавычки и весь текст

Chirag 15.04.2019 07:35

Есть ли способ загрузить файл csv куда-нибудь? или можно сделать скриншот?

Ben Pap 15.04.2019 07:36

Работает так, как ожидалось для меня.

Stop harming Monica 15.04.2019 07:40

Возможно, обновите версию панды? Я попробовал с 0.24.2, и он отлично работает.

pythonjokeun 15.04.2019 07:50

Версия панд @pythonjokeun такая же, как и у вас

Hendro Prasetyo 15.04.2019 08:55

@Chirag здорово, это правда, братан, и успех, когда я меняю вручную в блокноте, как мы можем автоматически создавать данные в CSV? у вас есть рекомендации для меня?

Hendro Prasetyo 15.04.2019 08:58

@HendroPrasetyo добавил подход, пожалуйста, проверьте.

Chirag 15.04.2019 11:08

По вопросу данные выглядят не так. Если пример в вопросе неверен, вы должны исправить его.

Stop harming Monica 15.04.2019 11:34
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
14
203
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте добавить в код следующий аргумент:

import pandas as pd  
pd.read_csv('book1.csv', quotechar = '"')

Единственное, что я могу придумать, что может помочь здесь, это добавить: pd.read_csv(books1.csv, skipinitialspace = True, quotechar = '"')

Jimmy 15.04.2019 07:23

Попробуй это:

import pandas as pd
df = pd.read_csv('book1.csv', sep = ",", names= ['id','Name','From','To'])
df = df.iloc[1:]
df['class'] = df['From'] +','+ df['To']
df = df[['id','Name','class']]
df 

не хочу, все равно не могу бро. помогите с другим решением

Hendro Prasetyo 15.04.2019 07:23

ты пробовал?

Arief 15.04.2019 08:15
Ответ принят как подходящий

Вы можете попробовать приведенную ниже логику для этого случая.

Step 1 : Open your CSV and replace double quotes (") to single Quote (').
Step 2 : Run the below code.

df = pd.read_csv('Workbook1.csv', sep=',',quotechar = "'")
print df

# renaming the first and last columns as extra '"' is attached with them
df = df.rename(columns = {'"id':'id','class"':'class'})

# remove all the '"' from the data
df = df.applymap(lambda x:str(x).replace('"',""))
print df

Выход:

  "id    name             class"
0  "1  hendro  bandung,semarang"
1  "2   he'sn             hen's"

   id    name             class
0  1  hendro  bandung,semarang
1  2   he'sn             hen's

Данные выглядят следующим образом при открытии в блокноте:

"id,name,class"
"1,hendro,'bandung,semarang'"
"2,he'sn,hen's"

Другие вопросы по теме