Текстовые данные в файле 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
Что случилось? Как я могу это исправить?
у меня не работает @AmitGupta, может быть, какое-то особое правило, когда я создаю данные в csv?
Как именно вы ожидаете, что результат будет выглядеть? Было бы здорово, если бы вы добавили то, что ожидаете, к своему посту.
привет @BenPap спасибо, но вы можете посмотреть пример 2. это моя проблема
Итак, вы хотите сохранить все запятые между всем?
Результат, который я хочу, вы можете посмотреть в примере 2 моего ожидания в последнем разделе. результат, на который я надеюсь @BenPap
когда вы открываете свой csv в текстовом редакторе, он будет выглядеть как «id, name, class» «1, hendro», «bandung, semarang» «», поэтому кавычка не работает, она игнорирует кавычки и весь текст
Есть ли способ загрузить файл csv куда-нибудь? или можно сделать скриншот?
Работает так, как ожидалось для меня.
Возможно, обновите версию панды? Я попробовал с 0.24.2, и он отлично работает.
Версия панд @pythonjokeun такая же, как и у вас
@Chirag здорово, это правда, братан, и успех, когда я меняю вручную в блокноте, как мы можем автоматически создавать данные в CSV? у вас есть рекомендации для меня?
@HendroPrasetyo добавил подход, пожалуйста, проверьте.
По вопросу данные выглядят не так. Если пример в вопросе неверен, вы должны исправить его.






Попробуйте добавить в код следующий аргумент:
import pandas as pd
pd.read_csv('book1.csv', quotechar = '"')
Единственное, что я могу придумать, что может помочь здесь, это добавить: pd.read_csv(books1.csv, skipinitialspace = True, quotechar = '"')
Попробуй это:
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
не хочу, все равно не могу бро. помогите с другим решением
ты пробовал?
Вы можете попробовать приведенную ниже логику для этого случая.
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"
Во-первых, это будет pd.read_csv("file.csv"), и он отлично работает и правильно читает файл для меня. если вы все еще сталкиваетесь с проблемой, просто введите sep = "," в качестве дополнительного ввода при чтении. поезд = pd.read_csv ("файл.csv", sep = ",")