2024-06-26 18:00:55 发布
网友
我想选择一个数据帧中的所有数据(除了索引、列索引和最右边的列-请参见下图)并将其存储到一个系列中。这可能是显而易见的,但我不能得到任何工作。例如,我尝试过a = nai_data.ix[0:19],但它再次返回一个包含所有索引的新数据帧,我只需要一系列数据。所以我试过a = pd.Series(nai_data.ix[0:19]),但也没用。我肯定有一个简单的方法可以做到这一点,但不能找出。感谢您的帮助
a = nai_data.ix[0:19]
a = pd.Series(nai_data.ix[0:19])
也许您正在寻找^{},这可以看作是将列索引移到行索引中:
In [12]: np.random.seed(2015) In [13]: df = pd.DataFrame(np.random.randint(10, size=(3,4))) In [14]: df Out[14]: 0 1 2 3 0 2 2 9 6 1 8 5 7 8 2 0 6 7 8 In [15]: df.stack() Out[15]: 0 0 2 1 2 2 9 3 6 1 0 8 1 5 2 7 3 8 2 0 0 1 6 2 7 3 8 dtype: int64
如果不需要多索引,请调用reset_index():
reset_index()
In [16]: df.stack().reset_index(drop=True) Out[16]: 0 2 1 2 2 9 3 6 4 8 5 5 6 7 7 8 8 0 9 6 10 7 11 8 dtype: int64
要选择除最后一列以外的所有列,可以使用^{}:
In [17]: df.iloc[:, :-1] Out[17]: 0 1 2 0 2 2 9 1 8 5 7 2 0 6 7 In [18]: df.iloc[:, :-1].stack() Out[18]: 0 0 2 1 2 2 9 1 0 8 1 5 2 7 2 0 0 1 6 2 7 dtype: int64
另一种方法是对底层NumPy数组进行切片和展平:
In [21]: df.values Out[21]: array([[2, 2, 9, 6], [8, 5, 7, 8], [0, 6, 7, 8]]) In [22]: df.values[:, :-1] Out[22]: array([[2, 2, 9], [8, 5, 7], [0, 6, 7]]) In [23]: df.values[:, :-1].ravel() Out[23]: array([2, 2, 9, 8, 5, 7, 0, 6, 7])
然后用这些数据来构建这个系列:
In [24]: pd.Series(df.values[:, :-1].ravel()) Out[24]: 0 2 1 2 2 9 3 8 4 5 5 7 6 0 7 6 8 7 dtype: int64
也许您正在寻找^{} ,这可以看作是将列索引移到行索引中:
如果不需要多索引,请调用
reset_index()
:要选择除最后一列以外的所有列,可以使用^{} :
另一种方法是对底层NumPy数组进行切片和展平:
然后用这些数据来构建这个系列:
相关问题 更多 >
编程相关推荐