Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从某一列开始移动单行中的值_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 从某一列开始移动单行中的值

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 然后我可以简

我有一个数据帧,其中有一行有问题。问题是其中一个值 缺少(第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():(以及其他来源)

我试过这个:

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]=新行