Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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 如何根据特定列在数据帧中上移行_Python_Pandas - Fatal编程技术网

Python 如何根据特定列在数据帧中上移行

Python 如何根据特定列在数据帧中上移行,python,pandas,Python,Pandas,如何在不影响其他列顺序的情况下,将一行中某一特定列的所有值上移 例如,假设我有以下代码: import pandas as pd data= {'ColA':["A","B","C"], 'ColB':[0,1,2], 'ColC':["First","Second","Third"]} df = pd.DataFrame(data) print(df) 我将看到以下输出: ColA ColB ColC 0 A 0 First

如何在不影响其他列顺序的情况下,将一行中某一特定列的所有值上移

例如,假设我有以下代码:

import pandas as pd
data= {'ColA':["A","B","C"],
        'ColB':[0,1,2],
        'ColC':["First","Second","Third"]}

df = pd.DataFrame(data)

print(df)
我将看到以下输出:

  ColA  ColB    ColC
0    A     0   First
1    B     1  Second
2    C     2   Third
在我的例子中,我想验证B列没有任何0,如果是这样,它将被删除,并且它下面的所有其他值都会向上推,并且其他列的顺序不会受到影响。大概我会看到以下情况:

  ColA  ColB    ColC
0    A   1     First
1    B   2    Second
2    C   NaN   Third
我不知道如何使用drop或shift方法来实现这一点


谢谢

我执行此IIUC的方法是过滤掉ColB中非0的值,并根据获得的有效值的长度用这些值填充列:

m = df.loc[~df.ColB.eq(0), 'ColB'].values
df['ColB'] = float('nan')
df.loc[:m.size-1, 'ColB'] = m

print(df)

 ColA  ColB    ColC
0    A   1.0   First
1    B   2.0  Second
2    C   NaN   Third

我执行此IIUC的方法是过滤掉ColB中不是0的值,并根据获得的有效值的长度用这些值填充列:

m = df.loc[~df.ColB.eq(0), 'ColB'].values
df['ColB'] = float('nan')
df.loc[:m.size-1, 'ColB'] = m

print(df)

 ColA  ColB    ColC
0    A   1.0   First
1    B   2.0  Second
2    C   NaN   Third
您可以将0替换为NaN,然后将其余值上移:

将numpy作为np导入 df.ColB.replace0,np.nan,inplace=True df.assignColB=df.ColB.shiftdf.ColB.count-lendf.ColB 您可以将0替换为NaN,然后将其余值上移:

将numpy作为np导入 df.ColB.replace0,np.nan,inplace=True df.assignColB=df.ColB.shiftdf.ColB.count-lendf.ColB 让我们做简单的分类

让我们做简单的分类