【发布时间】:2017-05-18 08:46:29
【问题描述】:
我有一个pandas.Series,其中每行的 dtype 是一个列表对象。例如
>>> import numpy as np
>>> import pandas as pd
>>> x = pd.Series([[1,2,3], [2,np.nan], [3,4,5,np.nan], [np.nan]])
>>> x
0 [1, 2, 3]
1 [2, nan]
2 [3, 4, 5, nan]
3 [nan]
dtype: object
如何删除每行列表中的nan?
期望的输出是:
>>> x
0 [1, 2, 3]
1 [2]
2 [3, 4, 5]
3 []
dtype: object
这行得通:
>>> x.apply(lambda y: pd.Series(y).dropna().values.tolist())
0 [1, 2, 3]
1 [2.0]
2 [3.0, 4.0, 5.0]
3 []
dtype: object
有没有比使用 lambda 更简单的方法,将列表转换为系列,删除 NaN,然后再次将值提取回列表中?
【问题讨论】:
标签: python list pandas numpy nan