熊猫Slinear插值按另一列分组

今晚

我有一个看起来像这样的数据集

testing = pd.DataFrame({'col':[1,np.nan,np.nan,7,1,np.nan,np.nan,7], 
                        'col2':['01-MAY-17 15:47:00','01-MAY-17 15:57:00',
                            '07-MAY-17 15:47:00','07-MAY-17 22:07:00',
                            '01-MAY-17 15:47:00','01-MAY-17 15:57:00',
                            '07-MAY-17 15:47:00','07-MAY-17 22:07:00'],
                        'Customer_id':['A','A','A','A','B','B','B','B']})

我需要根据每个客户在第一列中插入缺失值(在这种情况下,这没有什么区别,但是由于我有一些客户的第一个或最后一个客户都有缺失值,所以我确实需要分开放置)。

以前,我使用的是:

testing.groupby('Customer_id').apply(lambda group: group.interpolate(method= 'linear'))

但这假设每个点之间的距离相等,并且第二列是收集每条记录的日期时间,因此可以看出并非如此。

为了以某种方式更改它,以考虑不同的间距,我将col2传递给索引,并使用slinear进行插值

testing['col2'] = pd.to_datetime(testing['col2'])
testing['index1'] = testing.index
testing = testing.set_index('col2')
testing.apply(lambda group: group.interpolate(method= 'slinear'))
test_int=testing.interpolate(method='slinear')
test_int['col2'] = test_int.index
test_int = test_int.set_index('index1')
test_int

但这并未考虑不同的客户。在这种情况下,我该如何分组?

我想要一片T骨牛排

IIUC,一旦您有了set_index带有日期的列,就可以method='index'interpolate每个组中使用,例如:

testing.col2 = pd.to_datetime(testing.col2)
print (testing.set_index('col2').groupby('Customer_id')
              .apply(lambda x: x.interpolate(method= 'index')).reset_index())
                 col2       col Customer_id
0 2017-05-01 15:47:00  1.000000           A
1 2017-05-01 15:57:00  1.006652           A
2 2017-05-07 15:47:00  6.747228           A
3 2017-05-07 22:07:00  7.000000           A
4 2017-05-01 15:47:00  1.000000           B
5 2017-05-01 15:57:00  1.006652           B
6 2017-05-07 15:47:00  6.747228           B
7 2017-05-07 22:07:00  7.000000           B

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫:按日期将一列分组,并在另一列中计算特定值的累计数量

R:计算一列中的值的分数,按另一列中的值分组

熊猫按另一列中的值对一列进行排序

按一列的值排序,使行按另一列的值分组

按一列分组,然后在熊猫中查找另一列的总和和最大值

熊猫按一列分组将另一列的值连接为定界列表

按一列或另一列对熊猫数据框进行分组

熊猫按另一列的平均值对一列的值进行排序

熊猫:将一列中的单词数按另一列的值排序

DAX按一列分组,并保留另一列的相应值

按另一列值分组并计数

熊猫:按多列分组,将一列串联,同时添加另一列

熊猫分组但保留另一列

熊猫-按一列分组,按另一列排序,从第三列获取价值

使用差异对列进行分组并在熊猫中按另一列对另一列进行排序

按DataFrame的另一列移动列分组的值

按星期几分组,另一列按熊猫分组

熊猫分组并保留另一列的值

熊猫:向一列重复值的后缀添加递增数字,这些重复值按另一列的值分组并按索引排序

在熊猫中,当按另一列分组时,如何查找自按值改变的列以来的时间?

将熊猫数据框列中的单词按另一列分组以获得频率/计数

列出按另一列分组的唯一值

按特定链接列分组到另一列熊猫

熊猫汇总按另一列分组的行

对按另一列分组的熊猫数据框列值求和,然后用总和更新行并删除重复项

对按另一列的值分组的熊猫列执行归一化

如何创建一个新列,按每个 n 数字对另一列值进行分组?熊猫

ARRAY_AGG() 按另一列的值分组

如何在熊猫中按一列或另一列分组