此问题在此处已有答案:
Adding values for missing data combinations in Pandas(4个答案)
6小时前关门了。
我有一个dataframe,这是一个人在前期和后期的服务花费的净金额给我。我们正在寻找做一个分析,比较如果这些成员有不同的花费和访问在前期相比,后期。
dataframe看起来像这样,但是这个问题在几个点的数据中出现,有时是成员缺少的“前”期,有时是“后”期。df=pd.DataFrame({'unique_member_id_key':[723543, 723543, 723548, 723548, 723550, 723552, 723552],'net_amount':[34.26,35.09,72.07,54.73,54.32,87.43,87.32],'total_visits':[4,2,8,1,3,5,4],'Period':["Pre","Post","Pre","Post","Pre","Pre","Post"]})
我想做的是在python中修复这个问题,这样pandas dataframe将用一个新的行来填充缺失的“Pre”或“Post”周期,该成员在“total_visits”和“net_amount”列中放入零,并为周期列添加“Pre”或“Post”值(取决于它是否缺失“Pre”周期值或“Post”周期值的行)。
有没有一种方法可以系统地做到这一点,而不必找到每个ID是失踪的“前”或“后”期间,并插入行单独为每次发生这种情况?
谢谢!!Mark
1条答案
按热度按时间lp0sw83n1#
IIUC,你可以使用
pivot_table
来得到稠密矩阵,然后使用stack
来得到你的原始 Dataframe :或者@mozway建议使用
set_index/unstack
然后stack/reset_index
: