我正在使用一个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开始。但是我仍然想知道如何解决此问题