如何基于python中其他列的索引值复制相同的值

时间:2020-10-13 04:09:45

标签: python pandas string dataframe if-statement

我有一个如下所示的数据框,我想添加另一个要复制的列,直到满足某些条件为止。

sample_df = pd.DataFrame(data={
  'id': ['A', 'B', 'C'],
  'n' : [  1,   2,   3],
  'v' : [ 10,  13,   8],
  'z' : [5,    3,    6],
  'g' : [8,    8,    10]
})

additional_rows=

现在,我想添加另一列,其中包含有关数据框的其他信息。例如,我要复制Yes直到idB为止,并且要复制BYes以下的C到{{ 1}},从DD E

我期望的输出如下:

Maybe

如何在python中实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以使用np.select根据条件返回结果。由于您在谈论位置条件,因此我使用了df.index

sample_df = pd.DataFrame(data={
  'id': ['A', 'B', 'C','G','D','E'],
  'n' : [  1,   2,   3, 5,  5,  9],
  'v' : [ 10,  13,   8, 8,  4 ,  3],
  'z' : [5,    3,    6, 9,  9,   8]
})

sample_df['New Info'] = np.select([sample_df.index<2, sample_df.index<4],['Yes', 'No'], 'Maybe')
sample_df
Out[1]: 
  id  n   v  z  New Info
0  A  1  10  5  Yes  
1  B  2  13  3  Yes  
2  C  3  8   6  No   
3  G  5  8   9  No   
4  D  5  4   9  Maybe
5  E  9  3   8  Maybe