熊猫mul与密集稀疏

时间:2014-07-09 12:14:04

标签: python pandas sparse-matrix

我有一个时间索引DataFrame,其中只有一部分数据有效(出于某些“外部”原因)。

我为有效数据制作了时间索引Series 1和数据无效的NaN,因此我可以将其用作{{1 }}

这个DataFrame很稀疏。

Series

我希望import pandas as pd import numpy as np rng = pd.date_range(start='2014-07-09', periods=5, freq='D') data = np.random.randn(len(rng), 3) col_names = ['spam', 'ham', 'eggs'] df = pd.DataFrame(data=data, index=rng, columns=col_names) valid_days = np.nan * np.ones_like(df.spam.values) valid_days[2] = 1 validity_mask = pd.SparseSeries(data=valid_days, index=rng) 给我一套非NaN df.mul(validity_mask, axis=0),相反,我得到了:

spam, ham, eggs

1 个答案:

答案 0 :(得分:1)

当然,答案是在我们成倍增加之前需要转向dense

df.mul(validity_mask.to_dense(), axis=0)

给出了预期的结果:

                spam       ham     eggs
2014-07-09       NaN       NaN      NaN
2014-07-10       NaN       NaN      NaN
2014-07-11  1.943166 -0.342399 -0.31517
2014-07-12       NaN       NaN      NaN
2014-07-13       NaN       NaN      NaN

我把它放在这里,因为我无法在Pandas binary operations docsthe Sparse data structure docs中找到关于明确演员的任何内容,只需说出"功能上,他们的行为应该与他们的密集对手几乎相同。"