熊猫:如何对DataFrame.values进行操作,但保持索引完整?

时间:2019-05-12 20:08:01

标签: python pandas dataframe indexing

我正在使用一个DataFrame,它的一列包含不同大小的int列表。我应用了一个函数,以'np.nan'值填充列表的最大大小。 功能如下:

df['a'] = pd.DataFrame(df['a'].values.tolist()).agg(list, 1)

稍后,我将这些 np.nan 值转换为 -1 。问题在于,当使用 DataFrame.values 时,所得的 Series 的索引从0开始,并同样分配给我的前一列。结果,如果df ['a']的 index 从N开始,则我的新df ['a']将具有NN个值的N行。

例如,如果输入df为:

3                    [13, 14, 15]
4                [16, 17, 18, 19]
5            [20, 21, 22, 23, 24]
6            [25, 26, 27, 28, 29]
7    [30, 31, 32, 33, 34, 35, 36]
8                [30, 37, 38, 39]
9        [40, 41, 42, 43, 44, 45]
Name: a, dtype: object

输出变为:

3      [25.0, 26.0, 27.0, 28.0, 29.0, nan, nan]
4    [30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0]
5       [30.0, 37.0, 38.0, 39.0, nan, nan, nan]
6     [40.0, 41.0, 42.0, 43.0, 44.0, 45.0, nan]
7                                           NaN
8                                           NaN
9                                           NaN
Name: a, dtype: object

这是一个问题,因为我使用数据框的尾部进行验证。如何在保持索引不变的情况下将函数应用于值?

注意:我意识到我可以将函数应用于整个DataFrame并在以后进行拆分,或者可以重新索引尾部/验证集以从0开始。但是我仍然想知道如何解决此问题

0 个答案:

没有答案