如何使用 pandas 的重新索引方法 'ffill' 插入数据?
How to interpolate data using the pandas's reindex method 'ffill'?
我一直在阅读 Wes McKinney 的数据科学一书 Python。在本书的第五章——pandas简介——有一个小节是关于重建索引的。作者使用 pandas 的 reindex 方法向 DataFrame 对象添加新行; 'ffill' 方法用于前插缺失数据。
尽管我尝试实现相同的代码,但既没有创建新行也没有插入数据。我错过了什么?
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
一切正常,只需要将输出分配回变量 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
我一直在阅读 Wes McKinney 的数据科学一书 Python。在本书的第五章——pandas简介——有一个小节是关于重建索引的。作者使用 pandas 的 reindex 方法向 DataFrame 对象添加新行; 'ffill' 方法用于前插缺失数据。 尽管我尝试实现相同的代码,但既没有创建新行也没有插入数据。我错过了什么?
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
一切正常,只需要将输出分配回变量 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