Как преобразовать значения numeri c с кавычками в CSV в тип int - PullRequest
0 голосов
/ 16 июня 2020

Данные ниже

no,store_id,revenue,profit,state,country
'0','101','779183','281257','WD','India'
'1','101','144829','838451','WD','India'
'2','101','766465','757565','AL','Japan'
'3','102','766465','757565','AL','Japan'

Код ниже

import pandas as pd  
data = pd.read_csv("1.csv") 
dummies = pd.get_dummies(data)
dummies.head(10)

data.info () равен Object для всего столбца.

Как автоматически преобразовать в new object column в макеты. Например, здесь TEAM - это object, необходимо преобразовать в get_dummies. Если завтра кто-то добавит names столбец, его также необходимо преобразовать в макеты

  • data.info () равно object для всего столбца
  • Как преобразовать автоматически назначить int в числовой c столбец и object в нечисловой c столбец
  • Завтра кто-нибудь может добавить новый столбец, который может быть числовым c или нечисловым c
  • Как применить get_dummies после этого

Ответы [ 2 ]

2 голосов
/ 16 июня 2020

При чтении файла CSV с использованием pd.read_csv установите для параметра quotechar значение ' (по умолчанию ")

From docs pd.read_csv до quotechar:

quotecharstr (длина 1), необязательно:

Символ, используемый для обозначения начала и конца цитируемый товар. Элементы в кавычках могут содержать разделитель, и он будет проигнорирован.

from io import StringIO
text = """no,store_id,revenue,profit,state,country
'0','101','779183','281257','WD','India'
'1','101','144829','838451','WD','India'
'2','101','766465','757565','AL','Japan'
'3','102','766465','757565','AL','Japan'"""

df = pd.read_csv(StringIO(text),quotechar='\'') # or quotechar = "'"
print(df.dtypes)
no           int64
store_id     int64
revenue      int64
profit       int64
state       object
country     object
dtype: object
1 голос
/ 17 июня 2020

@ Ch3steR предлагает идеальное решение.

Чтобы расширить его, вы можете использовать конвертеры вместе, чтобы эффективно обрабатывать преобразования, если вы захотите.

df = pd.read_csv(io.StringIO(text), converters={'no': D.Decimal, 'store_id': D.Decimal})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...