Python 删除单元格并向上移动列

Python 删除单元格并向上移动列,python,pandas,multiple-columns,shift,Python,Pandas,Multiple Columns,Shift,我将熊猫与python一起使用。 我有一列,其中第一个值是零。 列中还有其他零,但我也不想删除它们。 我想删除此单元格并将列上移1个位置。 如果容易的话,我可以将第一个零设为空单元格,然后删除,但是我找不到任何东西来删除特定单元格并将列的其余部分向上移动。 到目前为止,我已经尝试帮助从现有的堆栈溢出和quora加github等,但我看不到任何我正在寻找 我认为您需要先更换最后一个NaN值: df = pd.DataFrame({'A':list('abcdef'),

我将熊猫与python一起使用。 我有一列,其中第一个值是零。 列中还有其他零,但我也不想删除它们。 我想删除此单元格并将列上移1个位置。 如果容易的话,我可以将第一个零设为空单元格,然后删除,但是我找不到任何东西来删除特定单元格并将列的其余部分向上移动。 到目前为止,我已经尝试帮助从现有的堆栈溢出和quora加github等,但我看不到任何我正在寻找

我认为您需要先更换最后一个
NaN
值:

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')})

print (df)
   A  B  C  D  E  F
0  a  4  7  1  5  a
1  b  5  8  3  3  a
2  c  4  9  5  6  a
3  d  5  4  7  9  b
4  e  5  2  1  2  b
5  f  4  3  0  4  b
如果没有
NaN
s,则仅用于替换
NaN

df['A'] = df['A'].shift(-1).fillna('AAA')
print (df)
     A  B  C  D  E  F
0    b  4  7  1  5  a
1    c  5  8  3  3  a
2    d  4  9  5  6  a
3    e  5  4  7  9  b
4    f  5  2  1  2  b
5  AAA  4  3  0  4  b
如果可能,列中的一些
NaN
s然后通过函数返回列
A
的位置来设置最后一个值:

df['A'] = df['A'].shift(-1)
df.iloc[-1, df.columns.get_loc('A')] = 'AAA'
print (df)
     A  B  C  D  E  F
0    b  4  7  1  5  a
1    c  5  8  3  3  a
2    d  4  9  5  6  a
3    e  5  4  7  9  b
4    f  5  2  1  2  b
5  AAA  4  3  0  4  b

关于
df['A']=df['A'].shift(-1)
?如果将列向上移动,您希望列中的最后一个值是什么?然后在最后一个值中获取NaN。@jezrael。非常感谢你。我花了一天的时间才让它发挥作用。现在我把最后一个元素作为一个空单元格,我可以在以后用零替换它。再次感谢您,让我试试另一个,然后再打给您。@anvinder-不客气!如果我的答案有用,别忘了-点击复选标记(
),将其从灰显切换为填充。您也可以向上投票-单击接受标记上方的
0
小三角形。谢谢