我想转换列 'x' 以便 xn=yn-yn+1,n 是索引。
# importing the dataframe:
import pandas as pd
data = pd.read_csv('data_xy.csv')
data = pd.DataFrame(data)
# printing the dataframe:
data
x y
0 2 15
1 3 13
2 4 10
3 1 6
4 3 5
5 0 2
我试过这个方法,但是不行:
# Try of redefining 'x' as xn = yn - yn1:
data['x'] = data['y'] - data[1:, 'y']
# Error message:
InvalidIndexError: (slice(1, None, None), 'y')
我也考虑过 .iloc() 方法,但我不知道如何将它用于我的目的
我没能找到与我类似的以前的问题,尽管它一定已经被问过。
Series.shift()
。有了它,您可以将 y 列的值移动 n 行。
In [1]: data['x'] = data['y'] - data['y'].shift(-1)
...: data
Out[1]:
x y
0 2.0 15
1 3.0 13
2 4.0 10
3 1.0 6
4 3.0 5
5 NaN 2
您可以使用
diff
:
data['x'] = data['y'].diff(-1).fillna(0)
print(data)
# Output
x y
0 2.0 15
1 3.0 13
2 4.0 10
3 1.0 6
4 3.0 5
5 0.0 2