Python - Как получить типы данных для всех столбцов в файле CSV? - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь получить все типы данных из файла CSV для каждого столбца.
Документация о типах данных в файле отсутствует, и проверка вручную займет много времени (в ней 150 столбцов).

Начинается с использованием этого подхода:

df = pd.read_csv('/tmp/file.csv')

>>> df.dtypes
a   int64
b   int64
c   object
d   float64

Достаточно ли хорош вышеуказанный подход или есть лучший подход для определения типов данных?
Также - файл имеет 150 столбцов.Когда я набираю df.types - я вижу только 15 или около того столбцов.Как их всех увидеть?

Ответы [ 4 ]

0 голосов
/ 03 апреля 2019

Есть несколько способов сделать это.Мне нравится использовать

df.dtypes

или

for i, v in enumerate(df.columns):
    print(i, v)
0 голосов
/ 17 сентября 2018

Вы можете обновить параметр отображения max_info_columns и использовать DataFrame.info()

pd.set_option('max_info_columns', 200)
df.info()
0 голосов
/ 17 сентября 2018

В зависимости от размера вашего файла вы можете сэкономить время, читая только первые несколько строк, используя аргумент nrows, равный pd.read_csv:

df = pd.read_csv('/tmp/file.csv', nrows=25)

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

Как только у вас есть данные (или их подмножество)), загруженные в DataFrame, вы можете просматривать типы различными способами, некоторые из которых уже опубликованы, но я поделюсь другим, используя простой цикл и iteritems:

for name, dtype in df.dtypes.iteritems():
    print(name, dtype)

a int64
b float64
c object
0 голосов
/ 17 сентября 2018

Я думаю, что это хороший способ сделать это. Возвращает объект Series. Чтобы увидеть больше строк, вы можете использовать этот: pd.set_option('display.max_rows', 250)

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