Python Pandas df-如果最后一列为空,则用数字复制最后一个可能的列
我有一个数据示例:Python Pandas df-如果最后一列为空,则用数字复制最后一个可能的列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据示例: 0 1 2 3 4 5 2 Text1 1 121 2.600,01 10 3 Text2 87 44 0 0,00 4 Text3 19 33 0 0,00 5 SUM
0 1 2 3 4 5
2 Text1 1 121 2.600,01 10
3 Text2 87 44 0 0,00
4 Text3 19 33 0 0,00
5 SUM 6 0 0 0 0 0,00
如您所见,df采用不同的大小(行中的数据量)
我希望最后一列(取决于最长的行)在每种情况下都不为空,即如果任何一行比最长的一行短,在这种情况下,最后一列的值应与最后出现的元素的值相同,并且输出应如下所示:
0 1 2 3 4 5
2 Text1 1 121 2.600,01 10 -------------> 10
3 Text2 87 44 0 0,00 ------------> 0,00
4 Text3 19 33 0 0,00 ------------> 0,00
5 SUM 6 0 0 0 0 0,00
我需要它来计算最后一列的和
我尝试在创建列表的阶段这样做-如果列表元素小于最长的列表项,那么我插入一个字符或任何东西,然后我将在列表的最后一个元素上添加一个值-问题是我不知道如何从列表中获取最后一个数值,这就是为什么它可以从df“级别”以某种方式完成?给我一些提示或说明,说明我如何做,以及是否可行。如果空值为缺失值
NaN
s通过ffill
向前填充缺失值,并按位置选择最后一列到最后一列:
df.iloc[:, -1] = df.ffill(axis=1).iloc[:, -1]
如果空值是空字符串:
df.iloc[:, -1] = df.replace('', np.nan).ffill(axis=1).iloc[:, -1]
我尝试过使用这个
df.iloc[:,-1]
但是我做不到-谢谢你的帮助,这应该可以解决我的问题:)