方法在 reindex() 中不起作用
method does not work in reindex()
from pandas import Series, DataFrame
import numpy as np
frame = DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'b', 'c'], columns=['A', 'B', 'C'])
frame2 = frame.reindex(['a', 'b', 'c', 'd'])
frame3 = frame2.reindex(method='ffill')
那么结果如下
frame
A B C
a 0 1 2
b 3 4 5
c 6 7 8
frame2
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d NaN NaN NaN
frame3
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d NaN NaN NaN
我打算 print(frame3) 的结果是
frame3
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d 6.0 7.0 8.0
我的代码有什么问题?
提前致谢。
只需使用ffill
frame3=frame2.ffill()
frame3
Out[1382]:
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d 6.0 7.0 8.0
或
frame3 = frame.reindex(['a', 'b', 'c', 'd'],method='ffill')
frame3
Out[1384]:
A B C
a 0 1 2
b 3 4 5
c 6 7 8
d 6 7 8
为什么你的方法不行,因为frame2和frame3有相同的索引,reindex里面的ffill是针对'new'索引的,但是frame2和frame3之间没有新的索引
from pandas import Series, DataFrame
import numpy as np
frame = DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'b', 'c'], columns=['A', 'B', 'C'])
frame2 = frame.reindex(['a', 'b', 'c', 'd'])
frame3 = frame2.reindex(method='ffill')
那么结果如下
frame
A B C
a 0 1 2
b 3 4 5
c 6 7 8
frame2
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d NaN NaN NaN
frame3
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d NaN NaN NaN
我打算 print(frame3) 的结果是
frame3
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d 6.0 7.0 8.0
我的代码有什么问题? 提前致谢。
只需使用ffill
frame3=frame2.ffill()
frame3
Out[1382]:
A B C
a 0.0 1.0 2.0
b 3.0 4.0 5.0
c 6.0 7.0 8.0
d 6.0 7.0 8.0
或
frame3 = frame.reindex(['a', 'b', 'c', 'd'],method='ffill')
frame3
Out[1384]:
A B C
a 0 1 2
b 3 4 5
c 6 7 8
d 6 7 8
为什么你的方法不行,因为frame2和frame3有相同的索引,reindex里面的ffill是针对'new'索引的,但是frame2和frame3之间没有新的索引