Когда вы идете и делаете что-то вроде этого:
quote_df = quote_df.ix[:,[0,3,2,1,4,5,8,9,30,31]]
pandas.ix
в этом случае возвращает новый, автономный формат данных.
Любые значения, которые вы решите изменить в этом фрейме данных, не изменят исходный фрейм.
Это то, что панды пытаются вас предупредить.
.ix
- плохая идея Объект .ix
пытается сделать больше чем одно, а для любого, кто прочитал что-нибудь о чистом коде, это сильный запах.
Учитывая этот фрейм данных:
df = pd.DataFrame({"a": [1,2,3,4], "b": [1,1,2,2]})
Два поведения:
dfcopy = df.ix[:,["a"]]
dfcopy.a.ix[0] = 2
Поведение одно: dfcopy
теперь является автономным фреймворком данных. Изменение этого параметра не изменится df
df.ix[0, "a"] = 3
Поведение два: это изменяет исходный фрейм.
.loc
вместо Разработчики pandas признали что объект .ix
был довольно вонючим [спекулятивно] и таким образом создал два новых объекта, которые помогают при вступлении и назначении данных. (Другое значение .iloc
)
.loc
выполняется быстрее, потому что он не пытается создать копию данных.
.loc
предназначен для изменения существующего (f17)
.loc
является предсказуемым, он имеет одно поведение.
Что вы делаете в своем коде Например, загружается большой файл с большим количеством столбцов, а затем изменяется его на меньший размер.
Функция pd.read_csv
может помочь вам с большим количеством этого, а также сделать загрузку файла намного быстрее .
Итак, вместо этого
quote_df = pd.read_csv(StringIO(str_of_all), sep=',', names=list('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg')) #dtype={'A': object, 'B': object, 'C': np.float64}
quote_df.rename(columns={'A':'STK', 'B':'TOpen', 'C':'TPCLOSE', 'D':'TPrice', 'E':'THigh', 'F':'TLow', 'I':'TVol', 'J':'TAmt', 'e':'TDate', 'f':'TTime'}, inplace=True)
quote_df = quote_df.ix[:,[0,3,2,1,4,5,8,9,30,31]]
Сделайте это
columns = ['STK', 'TPrice', 'TPCLOSE', 'TOpen', 'THigh', 'TLow', 'TVol', 'TAmt', 'TDate', 'TTime']
df = pd.read_csv(StringIO(str_of_all), sep=',', usecols=[0,3,2,1,4,5,8,9,30,31])
df.columns = columns
. Это будет читать только интересующие вас столбцы и назовите их правильно , Не нужно использовать объект зла .ix
для создания магического материала.
Вы должны установить фоновый цвет в нуль, если вы прикрываете его чем-то другим. Либо: - Установите фон в значение null в теме и добавьте новый фон в свой макет или - Установите фон в своей теме на нужный цвет / изображение.