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,但答案比我目前的方法慢。