Я пытаюсь прочитать данные из 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