Pandas DataFrame:如何在每一行中快速获得第一个非NaN值?

时间:2015-08-06 16:17:56

标签: python numpy pandas dataframe

import pandas
import numpy

list_of_lines = [['a', 'b', 'c', 'd'],
                 ['a', 'b', 'c', 'd'],
                 ['a', 'b', 'c', 'd'],
                 ['a', 'b', 'c', 'd']]

df1 = pandas.DataFrame(list_of_lines)

df1.ix[2, 0] = numpy.NaN
df1.ix[2, 1] = numpy.NaN

有没有办法从每一行获得第一个非NaN值?

我目前的做法是:

df1 = df1.bfill(axis = 1)

my_answer = df1.iloc[:, 1]

这给了我:

'a'
'a'
'c'
'a'

但它很慢。

是否有一些技巧或本地方式这样做而无需bfill?我的数据帧是1,500列x 10,000行,需要一段时间来填充。

有一个类似的问题here,但答案比我目前的方法慢。

0 个答案:

没有答案