我有一个错误已经出现的数据框。例如:
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
怎么做?
答案 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