说我有一个数据框:
DF = pd.DataFrame({'Number':np.arange(9)})
哪个收益率:
Number
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
然后我想用代码将其子集化为3个不同的块:
V1 = DF.query('Number > -1 and Number < 3')
V2 = DF.query('Number > 2 and Number < 6')
V3 = DF.query('Number > 5 and Number < 9')
提供3个新表:
V1
Number
0 0
1 1
2 2
V2
Number
3 3
4 4
5 5
V3
Number
6 6
7 7
8 8
如何编写代码以将每个数据帧的行重置回位置0,以便:
V1
Number
0 0
1 1
2 2
V2
Number
0 3
1 4
2 5
V3 =
Number
0 6
1 7
2 8
谢谢。
答案 0 :(得分:2)
您可以尝试这样做,将原始数据帧切割为3个新数据帧:
V1 = DF[(DF.Number > -1) & (DF.Number < 3)]
V2 = DF[(DF.Number > 2) & (DF.Number < 6)]
V3 = DF[(DF.Number > 5) & (DF.Number < 9)]
然后重置所需数据帧的索引:
V2 = V2.reset_index(drop=True)
V3 = V3.reset_index(drop=True)
答案 1 :(得分:1)
正如EdChum所述,“在每个切片上调用reset_index(drop=True)
”。
所以:
DF = pd.DataFrame({'Number':np.arange(9)})
V1 = DF.query('Number > -1 and Number < 3')
V2 = DF.query('Number > 2 and Number < 6')
V3 = DF.query('Number > 5 and Number < 9')
V1.reset_index(drop=True)
V2.reset_index(drop=True)
V3.reset_index(drop=True)
收率:
Number
0 0
1 1
2 2
Number
0 3
1 4
2 5
Number
0 6
1 7
2 8