删除特定单元格,同时将线条向左移动

时间:2017-10-28 22:42:55

标签: python pandas

我有一个错误已经出现的数据框。例如:

    data1   data2   data3
0   111     555 
1   222     666 
2   A       333     777
3   444     888 

我想从'data1'列中删除字母'A',同时将第2行的所有其余部分向左移动。要以表格形式获得结果:

    data1   data2   data3
0   111     555
1   222     666
2   333     777
3   444     888

怎么做?

2 个答案:

答案 0 :(得分:4)

这是解决方案之一。

df=df.apply(pd.to_numeric,errors='coerce').\
    apply(lambda x: sorted(x, key=pd.isnull), 1).fillna('')
df
Out[931]: 
   data1  data2 data3
0  111.0  555.0      
1  222.0  666.0      
2  333.0  777.0      
3  444.0  888.0    

答案 1 :(得分:3)

d = df.replace('A', np.nan)
a = d.isnull().values.argsort(1)

pd.DataFrame(
    d.values[np.arange(len(a))[:, None], a],
    d.index, d.columns)

  data1 data2 data3
0   111   555   NaN
1   222   666   NaN
2   333   777   NaN
3   444   888   NaN