猿问

在python中动态更改行值

我在 Python 的 DataFrame 中有以下信息:


##    x1   x2   x3   x4   x5   colum

##0  206  214  021  122  554     2

##1  226  234  123  456  789     4

##2  245  253  558  855  123     5

##3  265  272  000  111  222     4

##4  283  291  214  589  996     1

我需要根据包含 colum 列的值生成一个新列,方法如下:


##    x1   x2   x3   x4   x5   colum   newColum

##0  206  214  021  122  554     2       214

##1  226  234  123  456  789     4       456

##2  245  253  558  855  123     5       123

##3  265  272  000  111  222     4       111

##4  283  291  214  589  996     1       283

不知道我的要求有没有说清楚,谢谢谁能帮帮我。


牛魔王的故事
浏览 189回答 2
2回答

DIEA

使用pd.DataFrame.lookup整数并将其映射到列标签:df['new'] = df.lookup(df.index, 'x' + df['colum'].astype(str))print(df)    x1   x2   x3   x4   x5  colum  new0  206  214   21  122  554      2  2141  226  234  123  456  789      4  4562  245  253  558  855  123      5  1233  265  272    0  111  222      4  1114  283  291  214  589  996      1  283

慕雪6442864

使用numpy indexing:df['new'] = df.values[np.arange(len(df)),  df['colum'] - 1]print (df)    x1   x2   x3   x4   x5  colum  new0  206  214   21  122  554      2  2141  226  234  123  456  789      4  4562  245  253  558  855  123      5  1233  265  272    0  111  222      4  1114  283  291  214  589  996      1  283
随时随地看视频慕课网APP

相关分类

Python
我要回答