我有一个这样的文件:
value1, value2, value3, value4, value5
NAN NAN value8, value9, value0
value6, value7, NAN NAN NAN
我想推出第3行来执行以下操作:
value1, value2, value3, value4, value5
value6, value7, value8, value9, value0
NAN NAN NAN NAN NAN
我还希望这些行下方的行也向上移动。
这是如何在熊猫中完成的?
答案 0 :(得分:0)
这应该有效:
df = pd.DataFrame(
{'value1': {0: np.nan, 1: 'value6'},
'value2': {0: np.nan, 1: 'value7'},
'value3': {0: 'value8', 1: np.nan},
'value4': {0: 'value9', 1: np.nan},
'value5': {0: 'value0', 1: np.nan}}
)
print df
print
print df.iloc[0, :].combine_first(df.iloc[1, :])
value1 value2 value3 value4 value5
0 NaN NaN value8 value9 value0
1 value6 value7 NaN NaN NaN
value1 value6
value2 value7
value3 value8
value4 value9
value5 value0
Name: 0, dtype: object
答案 1 :(得分:0)
尝试 df.fillna() 方法。如果提供了数据帧定义和代码,它也会有所帮助。
>>> import pandas as pd;
>>> import numpy as np;
>>> df = pd.DataFrame({'r1':['v1','v2','v3','v4','v5'],'r2':[np.NaN,np.NaN,'v8','v9','v0'],'r3':['v6','v7',np.NaN,np.NaN,np.NaN]})
>>> df = df.T
>>> df
0 1 2 3 4
r1 v1 v2 v3 v4 v5
r2 NaN NaN v8 v9 v0
r3 v6 v7 NaN NaN NaN
>>> df.fillna(method='bfill')
0 1 2 3 4
r1 v1 v2 v3 v4 v5
r2 v6 v7 v8 v9 v0
r3 v6 v7 NaN NaN NaN