Python/Pandas:将自己的规则应用到某一列,并放在特定的位置

Python/Pandas: apply my own rule to a column and put it in a specific position

我有一个包含 10 多列的 table。假设 column_1 是一个名称,如果名称以字母 'a' 结尾,我想创建一个规则,将我的新列填充为 'Female'。在其他情况下,它将是 'Male'。 我希望这个新专栏紧跟在 column1 之后,所以我得到类似:

df1:

  1. A​​dam Male(其他)
  2. Elena 女(其他)
  3. Jack Male(其他栏目)
  4. 杰西卡女(其他)

您可以使用 insert:

df.insert(1, 'Name', np.where(df['col1'].str.endswith('a'), 'Female', 'Male'))

或者,如果您不知道 'col1' 的位置:

pos = df.columns.get_loc('col1')+1
df.insert(pos, 'Name', np.where(df['col1'].str.endswith('a'), 'Female', 'Male'))

输出:

      col1    Name  col2
0     Adam    Male     0
1    Elena  Female     1
2     Jack    Male     2
3  Jessica  Female     3

使用的输入:

df = pd.DataFrame({'col1': ['Adam', 'Elena', 'Jack', 'Jessica'], 'col2': range(4)})