我需要用第一个值减去 pandas 数据框中一列中的所有元素。
在这段代码中,pandas 提示 self.inferred_type,我猜这是循环引用。
df.Time = df.Time - df.Time[0]
在此代码中,pandas 提示在副本上设置值。
df.Time = df.Time - df.iat[0,0]
在 Pandas 中进行此计算的正确方法是什么?
最佳答案
我认为您可以通过 iloc
选择 Time
列中的第一项:
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
注意事项:
对我来说,您的 2 种方式也非常有效。
关于python - 用第一个值减去 Pandas 数据框中的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39991471/