我创建了以下DataFrame:
trains = np.arange(100)
tresholds = [10, 20, 30, 40, 50, 60]
tuples = []
for i in trains:
for j in tresholds:
tuples.append((i, j))
index = pd.MultiIndex.from_tuples(tuples, names=['trains', 'tresholds'])
matrix = np.empty((len(index), len(trains)))
matrix.fill(np.nan)
df = pd.DataFrame(matrix, index=index, columns=trains, dtype=float)
此DataFrame使用df.loc[(x, y), z]
索引填充,但它包含的NaN
比实际数字多,因此我想创建一个稀疏数据框架。但是df.to_sparse()
给了我this error (full trace)。
答案 0 :(得分:2)
在这种转换中,所有的nan列都是有缺陷的ATM。如果你已经有一个SparseFrame
,那么添加一个纳米列会起作用。
如果你这样做了:
df.iloc[0] = 0
df.to_sparse()
作品。