如何删除pandas数据帧的最后一列中的第一个值,然后删除剩余的最后一行?

时间:2017-08-22 04:16:22

标签: python pandas

下面我使用pandas以下列格式读取我的csv文件:

dataframe = pandas.read_csv("test.csv", header=None, usecols=range(2,62), skiprows=1)
dataset = dataframe.values

如何删除数据框中最后一列中的第一个值,然后删除数据框中的最后一行?

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以将最后一列向上移动以除去第一个值,然后删除最后一行。

df.assign(E=df.E.shift(-1)).drop(df.index[-1])

MVCE:

pd.np.random.seed = 123
df = pd.DataFrame(pd.np.random.randint(0,100,(10,5)),columns=list('ABCDE'))

输出:

    A   B   C   D   E
0  91  83  40  17  94
1  61   5  43  87  48
2   3  69  73  15  85
3  99  53  18  95  45
4  67  30  69  91  28
5  25  89  14  39  64
6  54  99  49  44  73
7  70  41  96  51  68
8  36   3  15  94  61
9  51   4  31  39   0

df.assign(E=df.E.shift(-1)).drop(df.index[-1]).astype(int)

输出:

    A   B   C   D   E
0  91  83  40  17  48
1  61   5  43  87  85
2   3  69  73  15  45
3  99  53  18  95  28
4  67  30  69  91  64
5  25  89  14  39  73
6  54  99  49  44  68
7  70  41  96  51  61
8  36   3  15  94   0

或分两步:

df[df.columns[-1]] = df[df.columns[-1]].shift(-1)
df = df[:-1]