0

以下のコードを検討してください。

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

これらの列にはすべて同じ種類のデータが含まれているので、それらを1つのシリーズに積み上げたいと思います。

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)

私は何が欠けていますか?

4

2 に答える 2

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
于 2013-03-25T19:39:45.273 に答える
1

これも機能するはずです

s = pd.concat([df[i] for i in df], ignore_index = True)
于 2013-03-25T19:40:53.603 に答える