pandas - 重新索引组以添加缺失的行
问题描述
我正在尝试重新索引组以扩展缺少值的数据框。与 resample 对时间索引的工作类似,我试图为普通整数值实现这一点。
因此,对于属于某个组键(在我的情况下为 proID)的组,应确定存在的最大整数值(指定重采样过程的终点)。该组应通过该整数值的缺失值进行扩展(我试图通过重新索引来实现)。
我有一个数据框,每个 proID 有很多行和一个整数 bin 值,范围从 0 到 100 和一些无意义的列。基本上,如果某些数据丢失,则应填充 bin 值,这与重新采样对时间索引所做的类似。
def rsmpint(df):
mx = df.bin.max() #identify maximal existing bin value in dataframe (group)
no = (mx * 20 / 100).astype(np.int64) + 1 #calculate number of bin values
idx = pd.Index(np.linspace(0,mx,no), name='bin') # define full bin-Index for df (group)
df.set_index('bin').reindex(idx).ffill().reset_index(drop=True, inplace=True)
return df
DF.groupby('proID').apply(rsmpint)
假设对于特定的 proID,当前有 5 个 bin 值 [0, 15, 20, 40, 65](即原始 proID 组的 5 行)。输出应该是一个扩展的 proID 组,其 bin 值 [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 60, 65] 使用 ffill 填充“无意义”列的内容()。
解决方案
推荐阅读
- jmeter - JMeter 中是否有更多线程安全变量可用于 get() 和 set() 变量?
- javascript - 我怎么知道库何时完全加载
- java - 尽管列表相同,assertEquals 仍无法通过测试
- php - return 语句前的空行
- recaptcha - Recaptcha V3 在通过 python 脚本运行时总是返回 0.9 分
- javascript - 如何按行对元素进行分组?
- python-3.x - python使用for循环修改变量列表
- spring - Spring Rest 和 JPA
- r - 如何使用 dplyr 第 2 部分将每日数据分组到数据框中的月份
- php - Symfony 3.4 - 软删除相关实体行后更新实体