请考虑以下代码:
sfix = sub['fix'] # a pandas.Panel
(sfix.minor_xs('tstop') - sfix.minor_xs('tstart')) # slicey slicey!
输出:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 804 entries, 0 to 803
Data columns (total 8 columns):
0 573 non-null values
1 675 non-null values
2 804 non-null values
3 715 non-null values
4 578 non-null values
5 568 non-null values
6 664 non-null values
7 599 non-null values
dtypes: float64(8)
此输出对应于Panel对象中包含的每个8个DataFrame的tstop
和tstart
列之间的差异。
这些列都包含相同类型的数据,我想将它们堆叠成一个系列,ergo:
s = pd.concat([df[i] for i in df])
这是一个好的开始,但现在我的所有索引都重复了8次:
>>> s.ix[0]
0 98
0 184
0 178
0 188
0 176
0 234
0 128
0 82
dtype: float64
从这里开始,我无法弄清楚如何重新索引我的系列索引,使索引从0变为len(s)
。我试过以下,但无济于事:
s.reindex(copy=True)
s.reindex(index=xrange(len(s)), copy=True)
我错过了什么?
答案 0 :(得分:2)
IIUC,您可以使用reset_index(drop=True)
:
>>> s
0 98
0 184
0 178
0 188
0 176
0 234
0 128
0 82
Dtype: float64
>>> s.reset_index(drop=True)
0 98
1 184
2 178
3 188
4 176
5 234
6 128
7 82
Dtype: float64
答案 1 :(得分:1)
这也应该有用
s = pd.concat([df[i] for i in df], ignore_index = True)