为了账号安全,请及时绑定邮箱和手机立即绑定

按组填充数据框中的所有变量

按组填充数据框中的所有变量

幕布斯6054654 2021-06-11 15:05:14
考虑这个简单的例子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)

副本去哪儿了?该对象现在位于内存中等待垃圾收集器。


查看完整回答
反对 回复 2021-06-15
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信