Python pandas:如何从特定列中选择第一个不是“None”的值?

时间:2017-09-01 16:51:04

标签: python pandas dataframe

我想用第一个非None值填充数据集的指定列。例如,给定df:

col_name
None
None
A
A
B
B
输出应该是:

col_name
A
A
A
A
B
B

对此有任何帮助,将非常感谢。 提前致谢。 卡罗

2 个答案:

答案 0 :(得分:2)

df.update(df.col_name.iloc[:df.col_name.notnull().argmax() + 1].bfill())

df

  col_name
0        A
1        A
2        A
3        A
4        B
5        B

相同的想法,但不同

i = df.col_name.notnull().argmax()
df.col_name.values[:i] = df.col_name.values[i]

如果None值实际上是'None'

中的字符串
i = df.col_name.ne('None').argmax()
df.col_name.iloc[:i] = df.col_name.iloc[i]

答案 1 :(得分:0)

您可以通过dataframe.values变量将值转换为numpy数组,然后循环遍历它,与numpy.nan相比,将值设置为true

例如

colName = df [' col_name']。值

colName [numpy.isnan(colName)] =' A'