Я создаю панду Dataframe для некоторого ML. X Dataframe имеет индекс даты, состоящий из всех существующих дат из моих различных файлов данных:
all_index=set()
for table in data:
for date in table.index.values:
all_index.add(date)
Затем я создаю свою переменную данных, где хочу объединить все имеющиеся у меня данные:
temp2= np.empty((len(all_index),1,))
temp2[:]=np.nan
X=pd.DataFrame(temp2, all_index)
И, конечно, теперь я хочу заполнить его данными (данные 1 DF, позже это будет список DF):
for i in X.index.values:
for j in data[0].index.values:
if(j==i):
X.at[i, 0] = data['Column Name'][i]
Ошибка:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-73-73562c8b1e98> in <module>
8 #X[i]=data[0]['BCH-USD'][i]
9 elem = data[0]['BCH-USD'][str(i)]
---> 10 X.at[i, 0] = elem
11 #print(X[0][i])
12 print(data[0]['BCH-USD'][i])
~\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\indexing.py in __setitem__(self, key, value)
2157 key = list(self._convert_key(key, is_setter=True))
2158 key.append(value)
-> 2159 self.obj._set_value(*key, takeable=self._takeable)
2160
2161
~\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\frame.py in _set_value(self, index, col, value, takeable)
2580 series = self._get_item_cache(col)
2581 engine = self.index._engine
-> 2582 engine.set_value(series._values, index, value)
2583 return self
2584 except (KeyError, TypeError):
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.set_value()
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.set_value()
pandas/_libs/src\util.pxd in util.set_value_at()
pandas/_libs/src\util.pxd in util.set_value_at_unsafe()
ValueError: setting an array element with a sequence.
Что я пробовал:
Эта ошибка странная, поскольку set_value устарела. А на странице документа написано использовать .at. И .at использует set_value ...
Я также пытался увидеть тип типа переменных (data ['Column Name'] [i]) -> float64
Я также пытался конвертировать с помощью pd.is_numeric. Та же ошибка
Я пытаюсь распечатать данные ['Имя столбца'] [i] в цикле, без ошибок. Если я попытаюсь распечатать X, тоже не будет ошибки.
Если я попытаюсь без цикла: X.at ['2018-11-24', 0] = data ['Имя столбца'] [0]
Это работает ...
Я ожидаю получить:
DataFrame с индексом всех дат в моих нескольких CSV-файлах в виде столбцов значений (если они доступны) из моих CSV-файлов. Если нет в наличии, просто нан.