我正在处理一个熊猫数据框,在这里我想在每一行中找到最远的非空值,然后反转这些值的顺序,并输出一个数据行,反转的行值不在第一列中保留空值。本质上是反转列顺序并将非null值向左移动。
在:
1 2 3 4 5
1 a b c d e
2 a b c
3 a b c d
4 a b c
出:
1 2 3 4 5
1 e d c b a
2 c b a
3 d c b a
4 c b a
最佳答案
对于每一行,创建一个具有相同索引但值相反的新系列:
def reverse(s):
# Strip the NaN on both ends, but not in the middle
idx1 = s.first_valid_index()
idx2 = s.last_valid_index()
idx = s.loc[idx1:idx2].index
return pd.Series(s.loc[idx[::-1]].values, index=idx)
df.apply(reverse, axis=1)
结果:
1 2 3 4 5
1 e d c b a
2 c b a NaN NaN
3 d c b a NaN
4 c NaN b a NaN
关于python - 在Pandas DataFrame中反转行值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57633212/