我一直在阅读Wes McKinney的书《 Python for Data Science》。在本书的第五章(熊猫简介)中,有一个关于重新索引的小节。作者使用pandas的reindex方法将新行添加到DataFrame对象。方法“填充”用于转发插值丢失的数据。 尽管我尝试实现相同的代码,但是既不会创建新行,也不会插值数据。我想念什么?
import numpy as np
from pandas import DataFrame,Series
data = np.random.randint(0,100,size=(10,10))
df = DataFrame(data,index = [i for i in range(0,20,2)])
a = df[0]
a.reindex(range(20),method='ffill')
print a
我希望创建新的奇数行索引并用数据进行前向填充,但是提取的Seies对象'a'根本不会改变。
这是实际结果:
data = np.random.randint(0,100,size=(10,10))...
0 43
2 47
4 41
6 76
8 78
10 9
12 13
14 23
16 40
18 87
Name: 0, dtype: int64
这是预期的结果:
data = np.random.randint(0,100,size=(10,10))...
0 43
1 43
2 47
3 47
.
.
.
18 87
19 87
Name: 0, dtype: int64
答案 0 :(得分:0)
一切正常,只需要将输出分配回变量a
,因为reindex
不能就地工作:
np.random.seed(1)
data = np.random.randint(0,100,size=(10,10))
df = pd.DataFrame(data,index = [i for i in range(0,20,2)])
a = df[0]
a = a.reindex(range(20),method='ffill')
print (a)
0 37
1 37
2 76
3 76
4 29
5 29
6 9
7 9
8 8
9 8
10 49
11 49
12 41
13 41
14 25
15 25
16 8
17 8
18 74
19 74
Name: 0, dtype: int32