簡體   English   中英

如何用 Pandas 中 4 個元素的空列表 [] 填充數據框 Nan 值?

[英]How to fill dataframe Nan values with empty list [] of 4 elements in pandas?

這是我的數據框:

          date                          ids
0     2011-04-23  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...
1     2011-04-24  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...
2     2011-04-25  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...
3     2011-04-26  NaN
4     2011-04-27  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...
5     2011-04-28  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...

我想用 [[],[],[],[]] 替換Nan 怎么做?

df['ids'].fillna("").apply(list)

對於 1 元素列表效果很好,但是我們如何將它與 4 元素列表一起使用?

您不能將fillna與列表一起使用,但您可以創建一個包含重復數據幀長度的列表的系列,並將其分配給b其中b是 NaN:

df.loc[df['b'].isna(), 'b'] = pd.Series([ [[]]*4 ] * len(df))

你可以試試

df['ids'] = df['ids'].apply(lambda x: [[],[],[],[]] if x!=x else x)

這使用了np.nan與自身不相等的特性。

您可以使用.apply()檢查該值是否為np.nan 如果是,則填充嵌套列表,否則為正常值。

嘗試這個:

df['ids'] = df['ids'].apply(lambda d: d if d is not np.nan else [[],[],[],[]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM