用第一个值减去pandas数据框中的一列 [英] Subtract a column in pandas dataframe by its first value

查看:85
本文介绍了用第一个值减去pandas数据框中的一列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要用它的第一个值减去pandas数据框中的一列中的所有元素.

I need to subtract all elements in one column of pandas dataframe by its first value.

在这段代码中,熊猫抱怨self.inferred_type,我猜这是循环引用.

In this code, pandas complains about self.inferred_type, which I guess is the circular referencing.

df.Time = df.Time - df.Time[0]

在此代码中,熊猫抱怨设置副本的价值.

And in this code, pandas complains about setting value on copies.

df.Time = df.Time - df.iat[0,0]

在熊猫中进行此计算的正确方法是什么?

What is the correct way to do this computation in Pandas?

推荐答案

我认为您可以通过

I think you can select first item in column Time by iloc:

df.Time = df.Time - df.Time.iloc[0]

示例:

start = pd.to_datetime('2015-02-24 10:00')
rng = pd.date_range(start, periods=5)

df = pd.DataFrame({'Time': rng, 'a': range(5)})  
print (df)
                 Time  a
0 2015-02-24 10:00:00  0
1 2015-02-25 10:00:00  1
2 2015-02-26 10:00:00  2
3 2015-02-27 10:00:00  3
4 2015-02-28 10:00:00  4

df.Time = df.Time - df.Time.iloc[0]
print (df)
    Time  a
0 0 days  0
1 1 days  1
2 2 days  2
3 3 days  3
4 4 days  4

注意:

对我来说,您的两种方法也很完美.

For me works perfectly your 2 ways also.

这篇关于用第一个值减去pandas数据框中的一列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆