Python 3.x 从某一列开始移动单行中的值
我有一个数据帧,其中有一行有问题。问题是其中一个值 缺少(第1列中的)以及其余列中的所有值(共有12列) 左移一个。第12列的值为NaN 示例:(我将简单地使用整数来表示我的问题) 行应为: 1,2,3,4,5,6,7,8,9,10,11,12 我有: 1,3,4,5,6,7,8,9,10,11,12,NaN 第1列中的值为“缺少”。第2-12列的值都向左移动了一个,第12列为NaN 我只想将这一行中的值向右移动一列,以便得到: 1,南,3,4,5,6,7,8,9,10,11,12 然后我可以简单地用正确的值替换第2列中的NaN 我找到了shift():(以及其他来源) 我试过这个:Python 3.x 从某一列开始移动单行中的值,python-3.x,pandas,Python 3.x,Pandas,我有一个数据帧,其中有一行有问题。问题是其中一个值 缺少(第1列中的)以及其余列中的所有值(共有12列) 左移一个。第12列的值为NaN 示例:(我将简单地使用整数来表示我的问题) 行应为: 1,2,3,4,5,6,7,8,9,10,11,12 我有: 1,3,4,5,6,7,8,9,10,11,12,NaN 第1列中的值为“缺少”。第2-12列的值都向左移动了一个,第12列为NaN 我只想将这一行中的值向右移动一列,以便得到: 1,南,3,4,5,6,7,8,9,10,11,12 然后我可以简
playstore = playstore.iloc[10472].shift(1, axis=1)
playstore.iloc[14072:1] = 'Lifestyle'
print(playstore.tail(), '\n')
但我得到一个语法错误:
ValueError:对象类型没有命名为1的轴
下降轴=1并不能解决问题。即使是这样,我还是从一开始就改变了整排人
是否有一种方法可以从特定列开始移动一行或多行?如果您知道要更改的行以及列号,则可以不移动值而覆盖该行 想象一下:
A B C
0 1 j 1.0
1 2 k NaN
2 3 l 3.0
我们知道错误的值是列B
和行号1
,因此我们更改此行:
NUM_ROW = 1 # The number of the row with has to be fixed
TOTAl_ROWS = df.shape[1] - 1 # Number of rows without counting the last one which is NaN.
new_line = [df.iloc[NUM_ROW, 0], None] # Initialize the new_line with the right part of the row.
# Get the rest of the new row.
for i in df.iloc[NUM_ROW, 1:TOTAl_ROWS]:
new_line.append(i)
# Overwriting old row with new one
df.loc[NUM_ROW] = new_line
因此,您的输出是:
A B C
0 1 j 1
1 2 None k
2 3 l 3
NUM_ROW=10472#具有的行数必须是固定的。TOTAl_COLUMN=df。shape[1]-1#不计算最后一个为NaN的列数。new_line=[df.iloc[NUM_ROW,0],None]#使用行的左侧部分初始化新行。#得到新行的其余部分。对于df.iloc[NUM_ROW,1:TOTAl_COLUMN]中的i:新行。追加(i)##用新行覆盖旧行df.loc[NUM_ROW]=新行