首页 > 解决方案 > 数据框到一系列列表

问题描述

假设我有以下数据框:

df =pd.DataFrame({'col1':[5,'',2], 'col2':['','',1], 'col3':[9,'','']})  
print(df)

col1 col2 col3
       5    9
 1               
 2     2    1     

有没有一种简单的方法可以把它变成一个pd.Series列表,避免空元素?所以:

0 [5,9]
1 [1]
2 [2,2,1]

标签: pythonpython-3.xpandaslistdataframe

解决方案


您可以尝试使用df.values

就拿df.values。将它们转换为列表并使用以下方法删除空元素map

In [2193]: df
Out[2193]: 
  col1 col2 col3
0         5    9
1    1          
2    2    2    1

单线:

In [2186]: pd.Series(df.values.tolist()).map(lambda row: [x for x in row if x != ''])
Out[2186]: 
0       [5, 9]
1          [1]
2    [2, 2, 1]
dtype: object

推荐阅读