Я новичок в панд, но при попытке просто добавить строкупанд добавить строку вместо столбца
class Security:
def __init__(self):
self.structure = ['timestamp', 'open', 'high', 'low', 'close', 'vol']
self.df = pd.DataFrame(columns=self.structure) # index =
def whats_inside(self):
return self.df
"""
Some skipped code...
"""
def add_data(self, timestamp, open, high, low, close, vol):
data = [timestamp, open, high, low, close, vol]
self.df = self.df.append (data)
sec = Security()
print sec.whats_inside()
sec.add_data ('2015/06/01', '1', '2', '0.5', '1', '100')
print sec.whats_inside()
но вывод:
0 close high low open timestamp vol
0 2015/06/01 NaN NaN NaN NaN NaN NaN
1 1 NaN NaN NaN NaN NaN NaN
2 2 NaN NaN NaN NaN NaN NaN
3 0.5 NaN NaN NaN NaN NaN NaN
4 1 NaN NaN NaN NaN NaN NaN
5 100 NaN NaN NaN NaN NaN NaN
Это означает, что я добавляю вместо строки. Да, я пытался google, но до сих пор не понял, как сделать его простым питоническим способом.
p.s. Я знаю, что это просто, но я просто пропустил что-то важное.
Нечаянно я обнаружил, что это решение (с использованием LOC вместо Append) является ** WAY БЫСТРЕЕ **, так что каждый должен рассмотреть вопрос об использовании Это. – pmus
хорошо работает для меня. Это не кажется очень очевидным, хотя ... или pythonic? Есть ли другой способ, с которым легче справиться? У меня создается впечатление, что панды на самом деле не написаны с добавлением строк. – Chogg
@Chogg См. ['.append'] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html) и [' .concat'] (https: // pandas .pydata.org/панды-документы/стабильный/генерироваться/pandas.concat.html). Однако это может быть медленнее, чем использование .loc' – DeepSpace