Python 在数据帧中从左向上移动单元格

Python 在数据帧中从左向上移动单元格,python,pandas,dataframe,Python,Pandas,Dataframe,有一个shift()函数,它可以按索引移位或按列移位(左或右)。但是我需要将单元格向左移动,如果它已经是第一列,我只需要将单元格(而不是整个索引行)向左和向上移动,因为它将覆盖我现有的值 例如 这是由于解析不好造成的,但无法修复,因为这超出了我的控制范围。所以在这个例子中,第二行应该向上移动到相应的列,最后一行应该向左移动受影响的单元格,而不是整行向左移动。这可能吗?我应该如何处理此问题?此示例数据集的快速修复: pd.DataFrame(df.stack().values.reformate(

有一个
shift()
函数,它可以按索引移位或按列移位(左或右)。但是我需要将单元格向左移动,如果它已经是第一列,我只需要将单元格(而不是整个索引行)向左和向上移动,因为它将覆盖我现有的值

例如


这是由于解析不好造成的,但无法修复,因为这超出了我的控制范围。所以在这个例子中,第二行应该向上移动到相应的列,最后一行应该向左移动受影响的单元格,而不是整行向左移动。这可能吗?我应该如何处理此问题?

此示例数据集的快速修复:

pd.DataFrame(df.stack().values.reformate(-1,5), columns=df.columns[:5])

输出:

   Name Age     Sex Salary  Status
0  John  32    Male   4000  Single
1   May  20  Female   2000  Single

解析完全超出了您的控制范围?您控制数据采集的哪一部分?来源是什么csv文件或excel?@AlexanderCécile只能在我从源代码获取数据后控制数据操作。在某种程度上,我正在解析这个pandas@davidbilla这是一个csv文件。@AhSheng如果它是一个csv文件,在那些丢失的单元格中不是只有逗号吗。我想要一个像这样的csv文件
姓名、年龄、性别、薪水、身份,5,6约翰,32岁,男性,,,,,4000,单身,5月,20岁,女性,2000年,单身,
   Name Age     Sex Salary  Status
0  John  32    Male   4000  Single
1   May  20  Female   2000  Single