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:
- Adam Male(其他)
- Elena 女(其他)
- Jack Male(其他栏目)
- 杰西卡女(其他)
您可以使用 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)})
我有一个包含 10 多列的 table。假设 column_1 是一个名称,如果名称以字母 'a' 结尾,我想创建一个规则,将我的新列填充为 'Female'。在其他情况下,它将是 'Male'。 我希望这个新专栏紧跟在 column1 之后,所以我得到类似:
df1:
- Adam Male(其他)
- Elena 女(其他)
- Jack Male(其他栏目)
- 杰西卡女(其他)
您可以使用 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)})