Pandas преобразовать данные CSV в число с плавающей точкой - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь прочитать данные из CSV и вычислить новые значения. Pandas интерпретирует данные как строки, следовательно, я не могу вычислить значения. Попытка преобразовать значения в число с плавающей точкой также не удалась. Как правильно преобразовать строку df в floats?

import pandas as pd

df = pd.read_csv('data.csv', names=['Open','High','Low','Close'])

#TypeError: unsupported operand type(s) for -: 'str' and 'str'
df['HL_PCT'] = (df['High']-df['Low'])/df['Close']

#ValueError: could not convert string to float: 'Low'
df['HL_PCT'] = (df['High'].astype(float)-df['Low'].astype(float))/df['Close'].astype(float)
print(df.head())

# head.csv
# Open,High,Low,Close
# 100.1,110.1,90.1,101.1
# 100.2,110.2,90.2,101.2
# 100.3,110.3,90.3,101.3
# 100.4,110.4,90.4,101.4

1 Ответ

0 голосов
/ 27 марта 2020

Проблема была вызвана заголовком. Должен был пропустить это так:

df = pd.read_csv('data.csv', names=['Open','High','Low','Close'], skiprows=[0])

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