Jon*_*nas 12 python series pandas
我有一个Pandas系列,基于一个随机数,我想选择一行(下面的代码示例中为5)并删除该行.删除行时,我想为剩余的行(0到8)创建一个新索引.代码如下:
print 'Original series: ', sample_mean_series
print 'Length of original series', len(sample_mean_series)
sample_mean_series = sample_mean_series.drop([5],axis=0)
print 'Series with item 5 dropped: ', sample_mean_series
print 'Length of modified series:', len(sample_mean_series)
print sample_mean_series.reindex(range(len(sample_mean_series)))
Run Code Online (Sandbox Code Playgroud)
这是输出:
Original series:
0 0.000074
1 -0.000067
2 0.000076
3 -0.000017
4 -0.000038
5 -0.000051
6 0.000125
7 -0.000108
8 -0.000009
9 -0.000052
Length of original series 10
Series with item 5 dropped:
0 0.000074
1 -0.000067
2 0.000076
3 -0.000017
4 -0.000038
6 0.000125
7 -0.000108
8 -0.000009
9 -0.000052
Length of modified series: 9
0 0.000074
1 -0.000067
2 0.000076
3 -0.000017
4 -0.000038
5 NaN
6 0.000125
7 -0.000108
8 -0.000009
Run Code Online (Sandbox Code Playgroud)
我的问题是第8行被删除了.我想删除行"5 NaN"并保留-0.000052,索引为0到8.这就是我想要的样子:
0 0.000074
1 -0.000067
2 0.000076
3 -0.000017
4 -0.000038
5 0.000125
6 -0.000108
7 -0.000009
8 -0.000052
Run Code Online (Sandbox Code Playgroud)
Bre*_*arn 13
有点混乱,reindex
并不意味着"创建一个新的索引".要创建新索引,只需指定index
属性即可.所以在你的最后一步就是这么做sample_mean_series.index = range(len(sample_mean_series))
.
Zel*_*ny7 11
这是一个单行:
In [1]: s
Out[1]:
0 -0.942184
1 0.397485
2 -0.656745
3 1.415797
4 1.123858
5 -1.890870
6 0.401715
7 -0.193306
8 -1.018140
9 0.262998
Run Code Online (Sandbox Code Playgroud)
我使用该Series.drop
方法删除第5行,然后使用reset_index
将索引重新编号为连续.如果不使用reset_index
,索引将从4跳到6而没有5.
默认情况下,reset_index
将原始索引移动到a DataFrame
并将其与系列值一起返回.通过drop=True
防止这种情况发生.
In [2]: s2 = s.drop([5]).reset_index(drop=True)
In [3]: s2
Out[3]:
0 -0.942184
1 0.397485
2 -0.656745
3 1.415797
4 1.123858
5 0.401715
6 -0.193306
7 -1.018140
8 0.262998
Name: 0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18427 次 |
最近记录: |