Получение строк фрейма данных, исключая заголовок в пандах - PullRequest
1 голос
/ 06 ноября 2019

У меня есть файл CSV, скриншот которого приведен ниже: enter image description here Моя цель - получить строки фрейма данных, исключая часть заголовка.

Моя цель: я преобразую данные в строке в "float64" , используя функцию astype () , а затем округляю данные до двух десятичных знаков, используя pandas round() функция. Код для того же показан ниже:

df = pd.read_csv('C:/Users/viral/PycharmProjects/Samples/036_20191009T132130.CSV',skiprows = 1)
df = df.astype('float64', errors="ignore")
df = df.round(decimals=2)

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

Но, к сожалению, данныене округляет до 2 знаков после запятой. Результаты показаны ниже: enter image description here

Я не уверен, но я предполагаю, что строка Пустой фрейм данных создает проблему при округлении данных.

С заголовком = нет enter image description here

Даже заголовок = 1 будет действовать так же, как действовал skiprow = 1.

Любые предложения приветствуются ...

Спасибо

Ответы [ 2 ]

3 голосов
/ 06 ноября 2019

Я считаю, что вам нужно:

file = 'C:/Users/viral/PycharmProjects/Samples/036_20191009T132130.CSV'

#for default columns 0,1,2, N with omit first row in original data
df = pd.read_csv(file,skiprows = 1, header=None)
#for columns names by first row in file omit skiprows and header parameters
#df = pd.read_csv(file)
#if necessary, convert to floats
df = df.astype('float64', errors="ignore")
#select only numeric columns
cols = df.select_dtypes(np.number).columns
#round only numeric cols
df[cols] = df[cols].round(decimals=2)
0 голосов
/ 06 ноября 2019

Попробуйте следующее:

df = pd.read_csv('C:/Users/viral/PycharmProjects/Samples/036_20191009T132130.CSV',skiprows = 1)
df = df.astype('float64', errors="ignore")
df = df.round(decimals=2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...