本文介绍了用第一个值减去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?
推荐答案
我认为您可以通过 iloc
:
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数据框中的一列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!