考虑这个简单的例子df = pd.DataFrame({'date' : [pd.to_datetime('2018-01-01'), pd.to_datetime('2018-01-01'), np.nan, pd.to_datetime('2018-01-01')], 'group' : ['a',np.nan,'b','b'], 'value' : [1,2,3,np.nan], 'value_useless' : [2,2,np.nan,2]})dfOut[101]: date group value value_useless0 2018-01-01 a 1.00000 2.000001 2018-01-01 NaN 2.00000 2.000002 NaT b 3.00000 nan3 2018-01-01 b nan 2.00000在这里,我想按组转发填充数据框中的所有变量。根据文档(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.fillna.html)我应该能够做到这一点:df.groupby('group').fillna(method = 'ffill', inplace = True)Out[110]: Empty DataFrameColumns: []Index: []疯狂的事情。这里有什么问题?谢谢!
1 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
df.groupby('group')正在生成groupby尚未分配名称的对象事物。然后,您正在fillna使用inplace=True. 当您使用时,inplace=True您会更改调用数据框并返回一堆无内容。 而且你折腾,调用数据框入空隙。
df.groupby('group').ffill()
你应该没事吧。
另一种看待它的方式:
# Copy Altered Copy In-Place... returning None
# | |
# v v
df.copy().set_index('group', inplace=True)
副本去哪儿了?该对象现在位于内存中等待垃圾收集器。
添加回答
举报
0/150
提交
取消